Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, ситуацията такая: Таблица 500к записей, делаю select id from ... join с фильтром по дате от-до, выполняется за 4 секунды - нормально. Делаю то же самое, только select * ( все колоны) - 55 секунд. Методом тыка установил, что проблем появляется, когда делаю select bit колоны ?!? Их несколько! Колоны были nullable, сделал их not nullable, ситуация чуть лучше - 40 секунд. Вчера потерял несколько часов на этот проблем, гуглил - ничего схожего не нашел. Может кто-то сталкивался ? select @@VERSION Microsoft SQL Server 2016 (SP2-CU4-OD) (KB4479742) - 13.0.5237.0 (X64) Dec 3 2018 21:07:34 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) (Hypervisor) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 10:25 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 10:52 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
Заметил что-то очень странное, Estimated Number of Rows - 452'521 Actual Number of Rows - 4'024 ( столько вернул select ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 11:49 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
8 колонок типа BIT храняться в одном байте. За счет внутренней оптимизации когда таких колонок больше, чем 32 на таблице наблюдал небольшие тормоза, но описанная вами ситуация видимо возникает из-за других причин. Покажите план выполнения и статистику ожидания на уровне сессии. Как раз вам версия сиквела это позволяет сделать: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 11:52 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
Итак, время отклика складывается из двух слагаемых. Первое-это время поиска нужных записей, второе-это их протаскивание по сети. Протаскивание по сети: это колличество записей умножить на длину. Теперь, то что ваш запрос-после фильтра с записю минимальной длины берёт, 4 секунды, не знаю о каком колличестве идёт речь, но даже, если брать по максимуму-многовато. Возможно, нет индекса на проверяемой поле. Скажем так, если вы сделаете select count(*) и это возьмёт больше нуля, проверьте индекс. Если вы не хотите все несколько сотен показывать юзеру то сделайте на сервере хоть какую-ту группировку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 12:04 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
AlanDenton Покажите план выполнения и статистику ожидания на уровне сессии. Не уверен, что точно показать. Вот результат вашего SQL-а, пока в другом окне работала медленная заявка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 12:35 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
AlanDenton, План прилагаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 12:38 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
AlanDenton, Estimation тоже добавил. Перед выполнением заявки делаю DBCC DROPCLEANBUFFERS; Раньше не делал, и время было различное, каждый раз. Сруль , результат маленький, INT + BIT колоны, 4к записей, SSMS клиент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 12:42 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
TPAKTOPA, вы оба плана выкладывайте, а не только медленный. В качестве предположения, без bit колонок вместо скана кластреного индекса происходит seek по некластерному индексу, в котором просто нет этих bit колонок. Можете попробовать Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 13:23 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
Было бы неплохо сделать покрывающий индекс либо изменить текущий. Схемы в вашей БД мы не знаем, а потому фильтрация у вас не может в полной мере использовать predicate pushdown ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 13:45 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
AlanDenton, Спасибо, я это тоже ранее заметил, ошибочный estimate индекса. drop table и recreate исправил ситуацию. Что-то не так было или с таблицей, или с индексами. Фрагментация показывала 0.0% , не знал, больше куда смотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 17:33 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 17:49 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
TPAKTOPAAlanDenton, Спасибо, я это тоже ранее заметил, ошибочный estimate индекса. drop table и recreate исправил ситуацию. Что-то не так было или с таблицей, или с индексами. Фрагментация показывала 0.0% , не знал, больше куда смотреть. жестко вы, достаточно было статистику обновить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 20:15 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
WarAntжестко вы, достаточно было статистику обновить делал rebuild и reorginize индекса, но не помогло. Ведь эти обе операции обновляют и статистику ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2019, 20:45 |
|
||
|
Медленная отдача, когда есть колона bit
|
|||
|---|---|---|---|
|
#18+
TPAKTOPAWarAntжестко вы, достаточно было статистику обновить делал rebuild и reorginize индекса, но не помогло. Ведь эти обе операции обновляют и статистику ? Update STATISTICS ... или EXEC sp_updatestats ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2019, 11:46 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=111&tid=1688167]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 382ms |

| 0 / 0 |
