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

Откуда:
Сообщений: 114
Что тот никак не нагуглю скрипт, для определения в бд комрессирования таблиц
сводная инфа
встречался кто?




blog
29 июн 12, 18:18    [12796550]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Скрипт определения чего?
29 июн 12, 18:21    [12796563]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
Alex5555555555
Member

Откуда:
Сообщений: 114
Гавриленко Сергей Алексеевич,

определить какие таблицы компрессированы, а какие нет :)
29 июн 12, 18:24    [12796583]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Alex5555555555
Гавриленко Сергей Алексеевич,

определить какие таблицы компрессированы, а какие нет :)
А какую таблицу считать сжатой? У которой все партиции пожаты или хотя бы одна?
29 июн 12, 18:25    [12796596]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
Alexandr Kr.
Member

Откуда: Украина, Харьков
Сообщений: 165
Alex5555555555
Что тот никак не нагуглю скрипт, для определения в бд комрессирования таблиц
сводная инфа
встречался кто?

blog


Не знаю как насчет компресиррованой таблицы, а определение состояние компрессии партиций можно вытаскивать из sys.partitions.
29 июн 12, 18:27    [12796615]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
Alex5555555555
Member

Откуда:
Сообщений: 114
Гавриленко Сергей Алексеевич,

а можно что б выводило инфу аля эта партиция компресс - а это нет?
29 июн 12, 18:27    [12796617]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
Alexandr Kr.
Member

Откуда: Украина, Харьков
Сообщений: 165
Alexandr Kr.,

На самом деле с помощью профайлера можно вытаскивать скрипты посылаемые из студии. Там же если посмотреть, то очень много вопросов отпадет.
29 июн 12, 18:29    [12796625]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
select
    object_name( a.object_id )
    , partially_compressed      = case when a.number_of_compressed_partitions > 0 then 1 else 0 end
    , fully_compressed          = case when a.number_of_compressed_partitions = a.number_of_partitions then 1 else 0 end
from (
    select 
        a.object_id
        , number_of_compressed_partitions   = sum ( case when a.data_compression_desc = 'NONE' then 0 else 1 end )
        , number_of_partitions              = count(*)
    from sys.partitions a
    group by a.object_id
) a
where
    objectproperty(a.object_id, 'IsMsShipped') = 0
order by 1
29 июн 12, 18:31    [12796636]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
Alex5555555555
Member

Откуда:
Сообщений: 114
Гавриленко Сергей Алексеевич,

да, хорошенький, спасибо

только всё таки компрессия таблиц интересует, а не партиций
в бд какие таблицы компрессированы
29 июн 12, 18:48    [12796722]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Alex5555555555
Гавриленко Сергей Алексеевич,

да, хорошенький, спасибо

только всё таки компрессия таблиц интересует, а не партиций
в бд какие таблицы компрессированы
Почитайте, как данные хранятся в сервере, что ли.

Жмутся не таблицы или индексы, а партиции, из которых они состоят.

Вот так правильнее, кстати:

select
    [ObjectName]                = object_name( a.object_id )
    , index_name                = ( select x.name from sys.indexes x where a.object_id = x.object_id and a.index_id = x.index_id )
    , partially_compressed      = case when a.number_of_compressed_partitions > 0 then 1 else 0 end
    , fully_compressed          = case when a.number_of_compressed_partitions = a.number_of_partitions then 1 else 0 end
from (
    select 
        a.object_id
        , a.index_id
        , number_of_compressed_partitions   = sum ( case when a.data_compression_desc = 'NONE' then 0 else 1 end )
        , number_of_partitions              = count(*)
    from sys.partitions a
    group by 
        a.object_id
        , a.index_id
) a
where
    objectproperty(a.object_id, 'IsMsShipped') = 0
order by 1
29 июн 12, 18:52    [12796740]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
PVC
Member

Откуда:
Сообщений: 319
Гавриленко Сергей Алексеевич,

поправьте, если не прав. мне казалось, что в sysobjects есть поле, бит в котором означал compressed
29 июн 12, 19:17    [12796813]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
PVC
Гавриленко Сергей Алексеевич,

поправьте, если не прав. мне казалось, что в sysobjects есть поле, бит в котором означал compressed
Что мешает выяснить это самостоятельно, прочитав документацию на предмет sysobjects?
29 июн 12, 21:02    [12797160]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
PVC
Member

Откуда:
Сообщений: 319
Гавриленко Сергей Алексеевич,

мне ничто не мешает. когда будет вопрос - прочту. удачи!
30 июн 12, 18:59    [12798885]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
aleonov
Member

Откуда:
Сообщений: 96
Гавриленко Сергей Алексеевич

Жмутся не таблицы или индексы, а партиции, из которых они


на самом деле все хитрее.. жмутся именно индексы, а не партиции. а для таблиц жмется только та часть партиции которой принадлежат данные таблицы
3 июл 12, 17:37    [12811594]     Ответить | Цитировать Сообщить модератору
 Re: compressed tables t-sql  [new]
aleonov
Member

Откуда:
Сообщений: 96
aleonov
Гавриленко Сергей Алексеевич
Жмутся не таблицы или индексы, а партиции, из которых они


на самом деле все хитрее.. жмутся именно индексы, а не партиции. а для таблиц жмется только та часть партиции которой принадлежат данные таблицы


поправлю сам себя.. для индексов также жмется только та часть партиции которой принадлежат данные таблицы
3 июл 12, 17:48    [12811660]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить