Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Привет! Есть огроменная таблица (30 GB где-то) под именем Код: plaintext В этой таблице есть, креме прочих, поля: Код: plaintext Есть фильтрованый индекс: Код: sql 1. 2. 3. 4. 5. 6. И есть простой запрос: Код: sql 1. 2. 3. И вот какого <CENSORED :-)> он выбирает стратегию "Clustered Index Scan"? Причем, если я раскомментирую USE INDEX HINT, то всё еще хуже - он для каждой строки из индекса (делает "Index Scan" по нему), делает "Nested Loops"=>"Key Lookup" по кластерному индексу? Почему просто не посчитать сколько листовых элементов в выше упомянутом индексе? Или вообще его статистику прочитать ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 10:47 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
План выполнения первого запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 10:53 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Yuri Abele, COUNT(priority)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 10:54 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
План выполнения второго запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 10:54 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Статистика (грубая) индекса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 10:54 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
TaPaKYuri Abele, COUNT(priority)? Неа - то же, что и в первом плане выполнения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 10:55 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Как вариант попробуйте на вычисляемом столбце фильтрованный индекс построить: Код: sql 1. 2. 3. 4. 5. 6. 7. Также если нужно чисто считать кол-во строк по индексу, то такой варик быстрее будет на порядок: Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:06 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Yuri Abele, скан выбирает скорее всего из за количества, какое соотношение NULL/NOT NULL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:06 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Потому что functionality gap Надо добавлять HashSum в include. UPD: ну или через вычисляемое поле, как советовали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:08 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Такое расширение добавит, как минимум, 4 байта на строку. А когда сотня миллионов, это уже чуствуется. А NULL или NOT NULL - это только один бит в уже существующей маске ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:08 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Гавриленко Сергей АлексеевичПотому что functionality gap Мда ..., нежиданно ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:10 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Yuri AbeleТакое расширение добавит, как минимум, 4 байта на строку. Кастуем в BIT получаем вместо 4 байтов - 1. Как вариант работать должно, опять же если нужно просто кол-во то лучше создать индекс но смотреть в метаданные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:11 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Sergey Syrovatchenko Код: sql 1. 2. 3. 4. 5. Ну да, это кусок из того, как тот же "Disk Usage By Table" работает. Это понятно, да и костыли я прикручу какие-нибудь. Хотелось просто понять, что за "№;%"№:", но коллега выше объяснил. Еще бы понять, чего они это никак не зафиксят?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:13 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Sergey SyrovatchenkoКастуем в BIT получаем вместо 4 байтов - 1. Как вариант работать должно, опять же если нужно просто кол-во то лучше создать индекс но смотреть в метаданные. И поле NOT NULL ... хм, я подумаю, спасибо за идею! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:14 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Yuri AbeleSergey SyrovatchenkoКастуем в BIT получаем вместо 4 байтов - 1. Как вариант работать должно, опять же если нужно просто кол-во то лучше создать индекс но смотреть в метаданные. И поле NOT NULL ... хм, я подумаю, спасибо за идею! Тогда уж наверное TINY INT и пихать туда до 256 комбинаций битов. Дело в том, что у меня несколько подобных полей - MetaInfo например, там то, что через Windows API о файле вытащить можно (типа разрешения картинок или авторов документов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:18 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Если что у сиквела есть внутренняя оптимизация по хранению типа BIT - 8 колонок такого типа хранится в таблице как 1 байт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:22 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Yuri AbeleГавриленко Сергей АлексеевичПотому что functionality gap Мда ..., нежиданно ...Самое возмутительное, МС имеет наглость заявлять, что это какой то "gap", а не баг. И эту бажищу не пофиксили до сих пор, с того обсуждения прошло уже 6 лет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:24 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Sergey SyrovatchenkoЕсли что у сиквела есть внутренняя оптимизация по хранению типа BIT - 8 колонок такого типа хранится в таблице как 1 байт. Так и я об этом! Этим-то и хотел пользоваться, когда фильтр по IS NULL в индекс запихал. А так теперь дополнительное COMPUTED поле, которое будет материализовано наложенным индексом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:32 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Yuri Abele, авторА так теперь дополнительное COMPUTED поле, которое будет материализовано наложенным индексом А что даст без PERSIST в фильтр засунуть? Так что дважды материализовано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 11:42 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
TaPaKYuri Abele, авторА так теперь дополнительное COMPUTED поле, которое будет материализовано наложенным индексом А что даст без PERSIST в фильтр засунуть? Так что дважды материализовано Вы, похоже, не с начала читали. Хотелось сэкономить, а не новые байты в строчках отгрызать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 12:41 |
|
||
|
Почему оптимизатор отказывается использовать фильтрованый и covered индекс?
|
|||
|---|---|---|---|
|
#18+
Yuri AbeleTaPaKYuri Abele, пропущено... А что даст без PERSIST в фильтр засунуть? Так что дважды материализовано Вы, похоже, не с начала читали. Хотелось сэкономить, а не новые байты в строчках отгрызать так я и говорю что с фильтрованным индексом сэкономить не получится, можно посмотреть в сторону индекисрованного представления но везде свои минусы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 12:43 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39832624&tid=1687605]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 444ms |

| 0 / 0 |
