Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Den_KP Member Откуда: Планета Земля, Евразийский материк Сообщений: 214 |
Добрый день! Есть таблица размер 1 Гб, размер индексов 20Мб(4 индекса). Табилца отвечает за отправку сообщений по почте, после отправки удаляет поля. Проблема в том что индексы устаревают на 90% после 30 минут работы. Создается большое время ожидания в обращениях. План приложенил. Время ожидания в день составляет около 7 часов. Почитал по удалению, не могу понять как можно оптимизировать такой быстро меняющийся поток:( К сообщению приложен файл. Размер - 16Kb |
15 мар 19, 11:32 [21833471] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
Den_KP, "Создается большое время ожидания в обращениях." у вас куча и скан, удёления ждут друг друга и вставки соотвественно |
15 мар 19, 11:38 [21833483] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31779 |
Индексы у вас всегда свеженькие, обновление индексов происходит прямо в транзакции обновления данных.
tps_guid уникальный или как? Лучше, конечно, приложить план (не estimated) в формате sqlplan, и скрипт создания таблицы с индексами. |
||||
15 мар 19, 11:40 [21833490] Ответить | Цитировать Сообщить модератору |
Den_KP Member Откуда: Планета Земля, Евразийский материк Сообщений: 214 |
Если результатом скана будет одно значение, тогда стоит ли использовать index seek? |
15 мар 19, 11:42 [21833493] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
что? |
||
15 мар 19, 11:45 [21833498] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31779 |
Повторю ещё раз:
|
||||
15 мар 19, 11:50 [21833514] Ответить | Цитировать Сообщить модератору |
Den_KP Member Откуда: Планета Земля, Евразийский материк Сообщений: 214 |
alexeyvg, С хинтами сложнее, запрос зашит в прикладе, поэтому нужно по-возможности реализовать на уровне БД, а если это не поможет тогда уже собрать аналитику и выкатывать рекомендацию разработчикам. tps_guid - PK и уникальный. Файлs вложил. К сообщению приложен файл (createdb+plan.sql - 10Kb) cкачать ![]() |
15 мар 19, 11:51 [21833517] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
смотрите в свои функции на контрейнах, они вызывают скан |
||
15 мар 19, 12:00 [21833529] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
точнее нет там функций :) FK сам на себя |
15 мар 19, 12:05 [21833539] Ответить | Цитировать Сообщить модератору |
Den_KP Member Откуда: Планета Земля, Евразийский материк Сообщений: 214 |
FK который tps_copy_with_guid? |
15 мар 19, 12:08 [21833544] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
да <ScalarOperator ScalarString="[IV-20173].[dbo].[tps_user_message_recipient].[tps_copy_with_guid]=[IV-20173].[dbo].[tps_user_message_recipient].[tps_guid]"> |
||
15 мар 19, 12:08 [21833545] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
Индекс добавьте по [tps_copy_with_guid] |
15 мар 19, 12:14 [21833556] Ответить | Цитировать Сообщить модератору |
Den_KP Member Откуда: Планета Земля, Евразийский материк Сообщений: 214 |
А есть ли смысл добавлять, если в этой колонке все значения NULL? |
15 мар 19, 12:17 [21833567] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
смысл этой колонки и FK сходу не ясен. индекс заменит скан на seek. А так вообще определитесь нужна ли колонка или нужен ли референс |
||
15 мар 19, 12:19 [21833573] Ответить | Цитировать Сообщить модератору |
Den_KP Member Откуда: Планета Земля, Евразийский материк Сообщений: 214 |
Изучил, похоже что это Баг приложения. Сейчас направлю тикет для изучения. Позже обязательно отпишусь о результате! И по рекомендации добавлю иденкс для организации seek-а. Большое спасибо за помощь! |
15 мар 19, 12:34 [21833596] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
если это рудимент, то просто прибейте референс и ничего больше не надо |
||
15 мар 19, 12:36 [21833602] Ответить | Цитировать Сообщить модератору |
Den_KP Member Откуда: Планета Земля, Евразийский материк Сообщений: 214 |
Проблема в том что я незнаю как функционал зацеплен на это, есть риск что сломается. Это поле видно в прикладе и его нельзя там отрубить, только хотфиксом от вендора. Если результата от вендора не будет, тогда сдклаю индекс. |
15 мар 19, 13:04 [21833665] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
я и не предлагаю "отрубать"... в общем общайтесь с вендором |
||
15 мар 19, 13:05 [21833669] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31779 |
|
||
15 мар 19, 13:53 [21833781] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31779 |
Будет лишняя нагрузка при вставке, но она неставнима со сканом при каждом удалении, просто разница в тысячи раз. |
||
15 мар 19, 13:55 [21833786] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31779 |
Понятно, что приложение может референсы проверять, но обычно так никто не делает, ну а функционально он не нужен, т.к. поле всегда NULL Но это ладно, индекс то точно никому не помешает. Обычный, неуникальный. |
||
15 мар 19, 13:57 [21833791] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
|
||
19 мар 19, 01:04 [21836692] Ответить | Цитировать Сообщить модератору |
Den_KP Member Откуда: Планета Земля, Евразийский материк Сообщений: 214 |
Саппорт у вендора как у черепахи, до сих пор мурыжат вопрос. Руки чешуться добавить индекс, но проблема в том что если что то колыхнеться 3 шкуры сдерут, поэтому работа должна отлежаться))) Я понимаю, что референс у них прям зашит в процессах, поэтому это похоже именно тот случай. |
19 мар 19, 06:58 [21836787] Ответить | Цитировать Сообщить модератору |
Критик Member Откуда: Москва / Калуга Сообщений: 34723 Блог |
Den_KP, Если у вас там одна запись, одно чтение, и одно удаление, то я подумал бы над необходимостью индексов. |
19 мар 19, 11:26 [21837037] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31779 |
Референс удалять нельзя, а вот добавление индекса не должен ни на что повлиять. Но если он не нужен (то есть устраивает низкая скорость), то можно и не добавлять. За низкую скорость у вас же никогда никого не выгоняли, так что можно забить. |
||
19 мар 19, 18:20 [21837655] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |