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

Откуда: Москва
Сообщений: 567
Добрый день всем.
Не могу разобраться как скриптом T-SQL узнать какие индексы какие секции этих индексов компрессированы и какая компрессия применена - PAGE, ROW, NONE. Единственное что нашел это функция sys.dm_db_index_physical_stats, только из нее не понятно какой тип компресси применен, и вообще есть ли компрессия ))))).
Гуглю тему 2й день - ничего толкового не нашел. Может кто сталкивался и решал подобную задачу? Если да - поделитесь опытом.
31 июл 13, 15:43    [14643672]     Ответить | Цитировать Сообщить модератору
 Re: DMV компрессии  [new]
invm
Member

Откуда: Москва
Сообщений: 9633
sys.partitions
31 июл 13, 16:05    [14643861]     Ответить | Цитировать Сообщить модератору
 Re: DMV компрессии  [new]
STsarionov
Member

Откуда:
Сообщений: 105
Я пользуюсь этим:
select * from sys.partitions
where data_compression <>0
31 июл 13, 16:06    [14643867]     Ответить | Цитировать Сообщить модератору
 Re: DMV компрессии  [new]
Алексей Куренков
Member [заблокирован]

Откуда: Москва
Сообщений: 567
Алексей Куренков,

Ура нашел! Явно не очевидно, но через вьюху system_columns попробовал - получилось:
select object_name(object_id),* from sys.system_columns where name like '%compres%'


В итоге вот где все лежит
select * from sys.partitions


Тема закрыта...
31 июл 13, 16:06    [14643872]     Ответить | Цитировать Сообщить модератору
 Re: DMV компрессии  [new]
Алексей Куренков
Member [заблокирован]

Откуда: Москва
Сообщений: 567
STsarionov,

Спасибо большое ))).
31 июл 13, 16:07    [14643878]     Ответить | Цитировать Сообщить модератору
 Re: DMV компрессии  [new]
Алексей Куренков
Member [заблокирован]

Откуда: Москва
Сообщений: 567
invm,

Спасибо за помощь
31 июл 13, 16:07    [14643882]     Ответить | Цитировать Сообщить модератору
 Re: DMV компрессии  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 34723
Блог
-- контроль "несжатости"
SELECT tbl.name,
       i.name,
       p.partition_number AS [PartitionNumber],
       p.data_compression_desc AS [DataCompression],
       p.rows  AS [RowCount]
  FROM sys.tables AS tbl
  LEFT JOIN sys.indexes AS i ON (i.index_id > 0 and i.is_hypothetical = 0) AND (i.object_id=tbl.object_id)
  INNER JOIN sys.partitions AS p ON p.object_id = CAST(tbl.object_id AS int) AND
                                    p.index_id = CAST(i.index_id AS int)
  where p.data_compression_desc <> 'PAGE' and
        p.rows >= 1000000
  order by p.rows desc, 3
31 июл 13, 16:41    [14644117]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить