Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Vardecimal вроде бы только в Enterprise Editions  [new]
Finsman
Member

Откуда: Da UK.
Сообщений: 404
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 фев 13, 18:17    [13978705]     Ответить | Цитировать Сообщить модератору
 Re: Vardecimal вроде бы только в Enterprise Editions  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
"Vardecimal вроде бы только в Enterprise Editions" - это где написано?
25 фев 13, 18:36    [13978801]     Ответить | Цитировать Сообщить модератору
 Re: Vardecimal вроде бы только в Enterprise Editions  [new]
Finsman
Member

Откуда: Da UK.
Сообщений: 404
Гавриленко Сергей Алексеевич
"Vardecimal вроде бы только в Enterprise Editions" - это где написано?


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

Туто
25 фев 13, 18:39    [13978817]     Ответить | Цитировать Сообщить модератору
 Re: Vardecimal вроде бы только в Enterprise Editions  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
То, что можно рулить настройкой базы не означает, что что-то меняется в формате хранения.
25 фев 13, 18:41    [13978828]     Ответить | Цитировать Сообщить модератору
 Re: Vardecimal вроде бы только в Enterprise Editions  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32175
Гавриленко Сергей Алексеевич
"Vardecimal вроде бы только в Enterprise Editions" - это где написано?
BOL
Формат хранения vardecimal доступен только в выпусках SQL Server Enterprise Edition, Developer Edition и Evaluation Edition.

Finsman
Это у всех так или только у мны щасте привалило?
ИМХО это из за того, что формат хранения vardecimal теперь работает, когда включено сжатие строки, а сама опция являетсмя устаревшей.
25 фев 13, 18:44    [13978845]     Ответить | Цитировать Сообщить модератору
 Re: Vardecimal вроде бы только в Enterprise Editions  [new]
Finsman
Member

Откуда: Da UK.
Сообщений: 404
Гавриленко Сергей Алексеевич
То, что можно рулить настройкой базы не означает, что что-то меняется в формате хранения.


Данные в таблице реально компресяца, также как и в энтерпрайзе.
Делал замеры роста занимаемого таблицей пространства при разных инсертах и с удивлением обнаружил компрессию нуллов.
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
25 фев 13, 18:53    [13978891]     Ответить | Цитировать Сообщить модератору
 Re: Vardecimal вроде бы только в Enterprise Editions  [new]
Finsman
Member

Откуда: Da UK.
Сообщений: 404
alexeyvg
ИМХО это из за того, что формат хранения vardecimal теперь работает, когда включено сжатие строки, а сама опция являетсмя устаревшей.


Так и сжатие строк/страниц- это тожеж Энтерпрайз фича.
А у мну она и в Экпрессе и в Стандарде.
25 фев 13, 18:57    [13978919]     Ответить | Цитировать Сообщить модератору
 Re: Vardecimal вроде бы только в Enterprise Editions  [new]
Finsman
Member

Откуда: Da UK.
Сообщений: 404
Ну вообщем насколько я из ответов понял, сжатие данных есть не только в Энтерпрайзе, но и в Експрессе и Стандарте.
А БОЛ ошибся.

Красота!!!
25 фев 13, 22:06    [13979762]     Ответить | Цитировать Сообщить модератору
 Re: Vardecimal вроде бы только в Enterprise Editions  [new]
Гость333
Member

Откуда:
Сообщений: 3683
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 Мб.
26 фев 13, 09:53    [13980788]     Ответить | Цитировать Сообщить модератору
 Re: Vardecimal вроде бы только в Enterprise Editions  [new]
Finsman
Member

Откуда: Da UK.
Сообщений: 404
Гость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


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

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

Видимо какой-то глюк с базой.
Вообщем еще раз спасибо, с меня пиво/виски.
26 фев 13, 16:11    [13983790]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить