Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37139 |
"Vardecimal вроде бы только в Enterprise Editions" - это где написано? |
25 фев 13, 18:36 [13978801] Ответить | Цитировать Сообщить модератору |
Finsman Member Откуда: Da UK. Сообщений: 404 |
The vardecimal storage format is available only in SQL Server Enterprise, Developer, and Evaluation editions. Туто |
||
25 фев 13, 18:39 [13978817] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37139 |
То, что можно рулить настройкой базы не означает, что что-то меняется в формате хранения. |
25 фев 13, 18:41 [13978828] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31778 |
|
||||||
25 фев 13, 18:44 [13978845] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
Finsman Member Откуда: Da UK. Сообщений: 404 |
Так и сжатие строк/страниц- это тожеж Энтерпрайз фича. А у мну она и в Экпрессе и в Стандарде. |
||
25 фев 13, 18:57 [13978919] Ответить | Цитировать Сообщить модератору |
Finsman Member Откуда: Da UK. Сообщений: 404 |
Ну вообщем насколько я из ответов понял, сжатие данных есть не только в Энтерпрайзе, но и в Експрессе и Стандарте. А БОЛ ошибся. Красота!!! |
25 фев 13, 22:06 [13979762] Ответить | Цитировать Сообщить модератору |
Гость333 Member Откуда: Сообщений: 3683 |
Хм... вы ничего не путаете? 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 Размер таблицы на каждом шаге исправно растёт примерно на 3 Мб. |
||
26 фев 13, 09:53 [13980788] Ответить | Цитировать Сообщить модератору |
Finsman Member Откуда: Da UK. Сообщений: 404 |
Огромное спасибо. Ваш код очень помог. Запустил его на старой базе 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 | ![]() |