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

Откуда:
Сообщений: 17
Всем привет.
На sql2008 R2 база с включенной компрессией.
эту базу надо перенести на новый сервер sql2014, но из-за урезания бюджета взяли версию standart.
И вот теперь надо в базе отключить компрессию.

Делаю вот таким образом
USE [data_base]
EXEC sp_MSForEachTable 'ALTER TABLE ? REBUILD PARTITION = ALL
WITH (DATA_COMPRESSION = NONE)'

После данной команды все равно остается часть индексов с компрессией.
при этом часть не кластерных идексов вообще не дает убирать флаг компресии.
пробовал и скриптом и через графику. просто говорит, что все ОК, а смотришь свойства все равно написано page.

Помогите избавиться от компресии во всей базе.
15 фев 16, 11:47    [18817103]     Ответить | Цитировать Сообщить модератору
 Re: компрессия в sql  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
das-ich,

скрипт покажет какие объекты используют компрессию. Дальше сами поймете что с ними делать.
/*распределение страниц данных, с указанием файловой группы, объекта и индекса, которые эти страницы охватывают.  */

SELECT au.allocation_unit_id
,au.type_desc
,au.total_pages
,au.used_pages
,au.data_pages
,p.index_id
,i.name AS [indexname]
,i.type_desc AS [index_type]
,fg.name AS [filegroup]
,s.name AS [schema]
,o.name AS [Object]
,o.type_desc 
,p.data_compression_desc
FROM sys.system_internals_allocation_units au
JOIN sys.partitions [p] ON [p].[partition_id] = au.[container_id]
JOIN sys.filegroups fg ON au.filegroup_id = fg.data_space_id
JOIN sys.objects o ON o.object_id = p.object_id
JOIN sys.schemas s ON s.schema_id = o.schema_id
JOIN sys.indexes i ON i.object_id = o.object_id AND i.index_id = p.index_id
WHERE  p.data_compression_desc != 'NONE'
ORDER BY total_pages desc
15 фев 16, 11:51    [18817123]     Ответить | Цитировать Сообщить модератору
 Re: компрессия в sql  [new]
o-o
Guest
тотальное дежа вю?
тот же автор, та же тема:
Перенос базы с enterprise на standart
15 фев 16, 11:52    [18817137]     Ответить | Цитировать Сообщить модератору
 Re: компрессия в sql  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
das-ich,

На куче создавайте кластерый индекс без компресии (указать явно) потом удаляйте
+

CREATE TABLE dbo.t123 (
id INT NOT NULL)
WITH (DATA_COMPRESSION = PAGE)
GO

SELECT au.allocation_unit_id
,au.type_desc
,au.total_pages
,au.used_pages
,au.data_pages
,p.index_id
,i.name AS [indexname]
,i.type_desc AS [index_type]
,fg.name AS [filegroup]
,s.name AS [schema]
,o.name AS [Object]
,o.type_desc
,p.data_compression_desc
FROM sys.system_internals_allocation_units au
JOIN sys.partitions [p] ON [p].[partition_id] = au.[container_id]
JOIN sys.filegroups fg ON au.filegroup_id = fg.data_space_id
JOIN sys.objects o ON o.object_id = p.object_id
JOIN sys.schemas s ON s.schema_id = o.schema_id
JOIN sys.indexes i ON i.object_id = o.object_id AND i.index_id = p.index_id
WHERE o.name = 't123'
ORDER BY total_pages DESC
GO

CREATE CLUSTERED INDEX ix1 ON dbo.t123(id)
WITH (DATA_COMPRESSION = NONE)
GO

DROP INDEX ix1 ON dbo.t123
GO

SELECT au.allocation_unit_id
,au.type_desc
,au.total_pages
,au.used_pages
,au.data_pages
,p.index_id
,i.name AS [indexname]
,i.type_desc AS [index_type]
,fg.name AS [filegroup]
,s.name AS [schema]
,o.name AS [Object]
,o.type_desc
,p.data_compression_desc
FROM sys.system_internals_allocation_units au
JOIN sys.partitions [p] ON [p].[partition_id] = au.[container_id]
JOIN sys.filegroups fg ON au.filegroup_id = fg.data_space_id
JOIN sys.objects o ON o.object_id = p.object_id
JOIN sys.schemas s ON s.schema_id = o.schema_id
JOIN sys.indexes i ON i.object_id = o.object_id AND i.index_id = p.index_id
WHERE o.name = 't123'
ORDER BY total_pages DESC
GO

DROP TABLE dbo.t123
GO
15 фев 16, 11:57    [18817177]     Ответить | Цитировать Сообщить модератору
 Re: компрессия в sql  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
o-o
тотальное дежа вю?
тот же автор, та же тема:
Перенос базы с enterprise на standart


В октябре 2015 он остановился на пункте "осталось просто наваять скриптик"
15 фев 16, 12:01    [18817201]     Ответить | Цитировать Сообщить модератору
 Re: компрессия в sql  [new]
das-ich
Member

Откуда:
Сообщений: 17
все проще, да тему создавал.
вроде как все декомпреснулось, но вот только сейчас наконец дали новый сервер и стал там разворачивать из бекапа и начало ругаться.
оказалось что не всё декампреснулось

спасибо.
с просто глюк интерфейса я и забыл.

в следующий раз буду внимательние
15 фев 16, 12:05    [18817237]     Ответить | Цитировать Сообщить модератору
 Re: компрессия в sql  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
das-ich
все проще, да тему создавал.
вроде как все декомпреснулось, но вот только сейчас наконец дали новый сервер и стал там разворачивать из бекапа и начало ругаться.
оказалось что не всё декампреснулось

спасибо.
с просто глюк интерфейса я и забыл.

в следующий раз буду внимательние


все ок, время то идет, и нередко на тот же вопрос, заданный через полгода можно получить другой ответ ;-)
15 фев 16, 12:22    [18817341]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить