Vardecimal вроде бы только в Enterprise Editions

Finsman
Дата: 25.02.2013 18:17:32
Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64)
Mar 29 2009 10:11:52
Copyright (c) 1988-2008 Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (VM)

Vardecimal enabled=True


Microsoft SQL Server 2012 - 11.0.2100.60 (X64)
Feb 10 2012 19:39:15
Copyright (c) Microsoft Corporation
Express Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

Vardecimal enabled=True

Первый раз работаю с не энтерпрайз sql server.
Vardecimal вроде бы только в Enterprise Editions
а тут Standard и Express.

Неожиданная щедрость от Microsofta.
Это у всех так или только у мны щасте привалило?

Бди!
Гавриленко Сергей Алексеевич
Дата: 25.02.2013 18:36:05
"Vardecimal вроде бы только в Enterprise Editions" - это где написано?
Finsman
Дата: 25.02.2013 18:39:17
Гавриленко Сергей Алексеевич
"Vardecimal вроде бы только в Enterprise Editions" - это где написано?


The vardecimal storage format is available only in SQL Server Enterprise, Developer, and Evaluation editions.

Туто
Гавриленко Сергей Алексеевич
Дата: 25.02.2013 18:41:28
То, что можно рулить настройкой базы не означает, что что-то меняется в формате хранения.
alexeyvg
Дата: 25.02.2013 18:44:15
Гавриленко Сергей Алексеевич
"Vardecimal вроде бы только в Enterprise Editions" - это где написано?
BOL
Формат хранения vardecimal доступен только в выпусках SQL Server Enterprise Edition, Developer Edition и Evaluation Edition.

Finsman
Это у всех так или только у мны щасте привалило?
ИМХО это из за того, что формат хранения vardecimal теперь работает, когда включено сжатие строки, а сама опция являетсмя устаревшей.
Finsman
Дата: 25.02.2013 18:53:11
Гавриленко Сергей Алексеевич
То, что можно рулить настройкой базы не означает, что что-то меняется в формате хранения.


Данные в таблице реально компресяца, также как и в энтерпрайзе.
Делал замеры роста занимаемого таблицей пространства при разных инсертах и с удивлением обнаружил компрессию нуллов.
CREATE TABLE [dbo].[Inb0001](
[A] [bigint] NULL,
[B] [bigint] NULL)

130к инсертов 1000000000,NULL =~6Mb
+
130к инсертов NULL,1000000000 =+~6Mb
+
130к инсертов 1000000000000,1000000000000 =+~12Mb
+
130к инсертов NULL,1000000000 =+~6Mb
+
130к инсертов NULL,NULL =+~0.01Mb
Finsman
Дата: 25.02.2013 18:57:00
alexeyvg
ИМХО это из за того, что формат хранения vardecimal теперь работает, когда включено сжатие строки, а сама опция являетсмя устаревшей.


Так и сжатие строк/страниц- это тожеж Энтерпрайз фича.
А у мну она и в Экпрессе и в Стандарде.
Finsman
Дата: 25.02.2013 22:06:52
Ну вообщем насколько я из ответов понял, сжатие данных есть не только в Энтерпрайзе, но и в Експрессе и Стандарте.
А БОЛ ошибся.

Красота!!!
Гость333
Дата: 26.02.2013 09:53:29
Finsman
CREATE TABLE [dbo].[Inb0001](
[A] [bigint] NULL,
[B] [bigint] NULL)

130к инсертов 1000000000,NULL =~6Mb
+
130к инсертов NULL,1000000000 =+~6Mb
+
130к инсертов 1000000000000,1000000000000 =+~12Mb
+
130к инсертов NULL,1000000000 =+~6Mb
+
130к инсертов NULL,NULL =+~0.01Mb

Хм... вы ничего не путаете?
1) На тип данных bigint опция vardecimal не распространяется;
2)
CREATE TABLE [dbo].[Inb0001](
	[A] [bigint]  NULL,
	[B] [bigint] NULL);

EXEC sp_tableoption '[dbo].[Inb0001]', 'vardecimal storage format', 'true';

SET NOCOUNT ON;

BEGIN TRANSACTION;
GO
INSERT dbo.Inb0001 VALUES(1000000000,NULL);
GO 130000
COMMIT TRANSACTION;

EXEC sp_spaceused 'dbo.Inb0001';

BEGIN TRANSACTION;
GO
INSERT dbo.Inb0001 VALUES(NULL,1000000000);
GO 130000
COMMIT TRANSACTION;

EXEC sp_spaceused 'dbo.Inb0001';

BEGIN TRANSACTION;
GO
INSERT dbo.Inb0001 VALUES(1000000000,1000000000);
GO 130000
COMMIT TRANSACTION;

EXEC sp_spaceused 'dbo.Inb0001';

BEGIN TRANSACTION;
GO
INSERT dbo.Inb0001 VALUES(NULL,1000000000);
GO 130000
COMMIT TRANSACTION;

EXEC sp_spaceused 'dbo.Inb0001';

BEGIN TRANSACTION;
GO
INSERT dbo.Inb0001 VALUES(NULL,NULL);
GO 130000
COMMIT TRANSACTION;

EXEC sp_spaceused 'dbo.Inb0001';
GO

Beginning execution loop
Batch execution completed 130000 times.
name rows reserved data index_size unused
-------------------------------------------- ----------- ------------------ ------------------ ------------------ ------------------
Inb0001 130000 3400 KB 3384 KB 8 KB 8 KB

Beginning execution loop
Batch execution completed 130000 times.
name rows reserved data index_size unused
-------------------------------------------- ----------- ------------------ ------------------ ------------------ ------------------
Inb0001 260000 6792 KB 6760 KB 8 KB 24 KB

Beginning execution loop
Batch execution completed 130000 times.
name rows reserved data index_size unused
-------------------------------------------- ----------- ------------------ ------------------ ------------------ ------------------
Inb0001 390000 10184 KB 10136 KB 8 KB 40 KB

Beginning execution loop
Batch execution completed 130000 times.
name rows reserved data index_size unused
-------------------------------------------- ----------- ------------------ ------------------ ------------------ ------------------
Inb0001 520000 13576 KB 13512 KB 8 KB 56 KB

Beginning execution loop
Batch execution completed 130000 times.
name rows reserved data index_size unused
-------------------------------------------- ----------- ------------------ ------------------ ------------------ ------------------
Inb0001 650000 16904 KB 16888 KB 8 KB 8 KB

Размер таблицы на каждом шаге исправно растёт примерно на 3 Мб.
Finsman
Дата: 26.02.2013 16:11:42
Гость333

Огромное спасибо.
Ваш код очень помог.
Запустил его на старой базе

Msg 11407, Level 16, State 1, Procedure sp_tableoption, Line 136
Vardecimal storage format can not be enabled for 'Inb0001'. Only Enterprise edition of SQL Server supports vardecimal.
Beginning execution loop					
Batch execution completed 130000 times.					
name	rows	reserved	data	index_size	unused
--------------------------------------------------------------------------------------------------------------------------------	--------------------	------------------	------------------	------------------	------------------
Inb0001	130000	0 KB	0 KB	0 KB	0 KB


остальные ждал 40мин недождался,кансельнул.
Пытался посмотреть размер через фронтенд, получил сообщение что база в режиме автоматического recovery.

Рестартанул сервер (2012) пересоздал новую базу.
Все стало вроде на свои места,только рост не по 3Мб а по 12Мб.

Beginning execution loop					
Batch execution completed 130000 times.					
name	rows	reserved	data	index_size	unused
--------------------------------------------------------------------------------------------------------------------------------	--------------------	------------------	------------------	------------------	------------------
Inb0001	130000	11976 KB	11960 KB	8 KB	8 KB
					
Beginning execution loop					
Batch execution completed 130000 times.					
name	rows	reserved	data	index_size	unused
--------------------------------------------------------------------------------------------------------------------------------	--------------------	------------------	------------------	------------------	------------------
Inb0001	260000	23944 KB	23912 KB	8 KB	24 KB
					
Beginning execution loop					
Batch execution completed 130000 times.					
name	rows	reserved	data	index_size	unused
--------------------------------------------------------------------------------------------------------------------------------	--------------------	------------------	------------------	------------------	------------------
Inb0001	390000	35912 KB	35864 KB	8 KB	40 KB
					
Beginning execution loop					
Batch execution completed 130000 times.					
name	rows	reserved	data	index_size	unused
--------------------------------------------------------------------------------------------------------------------------------	--------------------	------------------	------------------	------------------	------------------
Inb0001	520000	47880 KB	47824 KB	8 KB	48 KB
					
Beginning execution loop					
Batch execution completed 130000 times.					
name	rows	reserved	data	index_size	unused
--------------------------------------------------------------------------------------------------------------------------------	--------------------	------------------	------------------	------------------	------------------
Inb0001	650000	59848 KB	59776 KB	8 KB	64 KB


Запустил Ваш код на другой базе на етом же сервере-

результат идеинтичен Вашему.

Видимо какой-то глюк с базой.
Вообщем еще раз спасибо, с меня пиво/виски.