Вопросы с тегом «execution-plan»

10
Возможная бесконечная перекомпиляция была обнаружена для SQLHANDLE

Я нашел странные сообщения об ошибках в журнале ошибок SQL: Bocss: один и тот же тупик происходит каждый час - требует расследования Кроме того, множество перекомпиляций перечислены в журнале ошибок для других SPID согласно следующим примерам: 09/04/2015 14: 30: 10, spid64, Неизвестный, возможная...

10
Огромное несоответствие между сообщаемым размером индекса и количеством буферов в плане выполнения

Проблема У нас есть запрос как SELECT COUNT(1) FROM article JOIN reservation ON a_id = r_article_id WHERE r_last_modified < now() - '8 weeks'::interval AND r_group_id = 1 AND r_status = 'OPEN'; Поскольку время ожидания истекает (через 10 минут) чаще всего, я решил исследовать проблему. EXPLAIN...

10
Почему не присоединиться к работе по удалению с sys.query_store_plan?

Ниже приведено упрощение проблемы производительности, возникающей в хранилище запросов: CREATE TABLE #tears ( plan_id bigint NOT NULL ); INSERT #tears (plan_id) VALUES (1); SELECT T.plan_id FROM #tears AS T LEFT JOIN sys.query_store_plan AS QSP ON QSP.plan_id = T.plan_id; plan_idКолонна...

10
Каковы последствия установки ARITHABORT ON для всех соединений в SQL Server?

Итак, я решил, что ошибочное поведение моего SQL Server связано с настройкой по умолчанию поставщика данных .Net SqlClient SET ARITHABORT OFF. С учетом сказанного я прочитал различные статьи, в которых обсуждается лучший способ реализации этого. Для меня я просто хочу простой способ, потому что SQL...

10
Странный план запроса при использовании OR в предложении JOIN - постоянное сканирование для каждой строки в таблице

Я пытаюсь создать примерный план запроса, чтобы показать, почему UNIONing двух наборов результатов может быть лучше, чем использование OR в предложении JOIN. План запроса, который я написал, поставил меня в тупик. Я использую базу данных StackOverflow с некластеризованным индексом Users.Reputation....

9
Код создает другой план при запуске ad-hoc против хранимой процедуры

У меня есть оператор удаления, который использует неверный план при запуске внутри хранимой процедуры, но выбирает гораздо лучший план при запуске ad-hoc. Я перестроил все индексы для таблиц, используемых запросом, и удалил все кэши. Оптимизатор по-прежнему выбирает неправильный план для хранимой...

9
Почему вычисление плана выполнения занимает так много времени?

Один из наших клиентов только что перешел на новый сервер. Для конкретной хранимой процедуры при ее первом запуске требуется более трех минут. Последующие пробеги менее 1 секунды. Это наводит меня на мысль, что первые три минуты в основном используются для расчета плана выполнения. Последующие...

9
Как я могу получить план выполнения для представления?

У меня есть схема с рядом просмотров. Мне нужно проверить планы выполнения, чтобы убедиться, что соответствующие индексы на месте и используются. Как мне это сделать? Я предпочел бы не нужно копировать и вставлять его из show create view <viewname>INTO explain, особенно некоторые мнения...

9
Отсутствует некластеризованный индекс, уже являющийся частью кластерного индекса

Я отлаживаю медленно выполняющийся запрос, и в плане выполнения предлагается некластеризованный индекс с воздействием 51.6648. Однако некластеризованный индекс включает только столбцы, которые уже находятся в составном кластерном индексе с первичным ключом (PK). Может ли это быть из-за порядка...

9
Простое УДАЛЕНИЕ, но сложный план выполнения

Когда я запускаю это удаление: DELETE FROM ETLHeaders WHERE ETLHeaderID < 32465870 ... удаляет 39 157 строк. Это должно быть просто, потому что это удаление по ETLHeaderID, который является кластеризованным индексом и первичным ключом. Но (согласно плану выполнения) кажется, что он набирает 361...

9
Получение реалистичного плана запроса при разбиении на небольшие объемы данных

Мы используем секционирование, чтобы уменьшить количество блокировок, возникающих в нашей системе OLTP из-за блокировок, с помощью схемы секционирования, которая разбивает рабочие таблицы на 100 секций на основе идентификатора клиента. Однако во время тестирования мы обнаруживаем, что планы...

9
Много «FETCH API_CURSOR0000…» на sp_WhoIsActive (SQL Server 2008 R2)

У меня странная ситуация. Используя sp_whoisactiveя могу видеть это: Хорошо, с помощью этого запроса я вижу, что вызывает (существует ли это слово на английском языке?): SELECT c.session_id, c.properties, c.creation_time, c.is_open, t.text FROM sys.dm_exec_cursors (SPID) c --0 for all cursors...

9
План выполнения НЕ использует INDEX, он использует сканирование таблицы

Я знаю, что когда дело доходит до использования индекса или сканирования таблицы, SQL Server использует статистику, чтобы определить, какая из них лучше. У меня есть таблица с 20 миллионами строк. У меня есть индекс (SnapshotKey, Measure) и этот запрос: select Measure, SnapshotKey, MeasureBand from...

9
«Предупреждения: операция вызвала остаточный ввод-вывод» в сравнении с поиском по ключевым словам

Я видел это предупреждение в планах выполнения SQL Server 2017: Предупреждения: Операция вызвала остаточный IO [sic]. Фактическое количество прочитанных строк было (3,321,318), но количество возвращенных строк было 40. Вот фрагмент из SQLSentry PlanExplorer: Чтобы улучшить код, я добавил...

9
Статистика по индексу по разделам не используется в запросе по всей таблице

Следующее объединение имеет очень разные оценки строк при объединении разделов по сравнению с объединением всей таблицы: CREATE TABLE m_data.ga_session ( session_id BIGINT NOT NULL, visitor_id BIGINT NOT NULL, transaction_id TEXT, timestamp TIMESTAMP WITH TIME ZONE NOT NULL, day_id INTEGER NOT...

9
Постоянный вычисляемый столбец, вызывающий сканирование

Преобразование обычного столбца в постоянный вычисляемый столбец приводит к тому, что этот запрос не может выполнять поиск индекса. Почему? Протестировано на нескольких версиях SQL Server, включая 2016 SP1 CU1. Repros С вычисляемым столбцом С обычной колонкой Беда в том , с table1, col7. Таблицы и...

9
Почему выполнение удаления моего многораздельного представления приводит к вставке кластерного индекса?

У меня есть разделенное представление, которое имеет ниже триггер вставки (плохой раздел man). Когда я выполняю DELETE, я получаю следующий план запроса: delete from factproductprice where pricedate = '20170725' Триггер на виде: ALTER TRIGGER [dbo].[factProductPriceDelete] ON...

9
MERGE предотвращение блокировки

В одной из наших баз данных у нас есть таблица, к которой интенсивно одновременно обращается несколько потоков. Потоки обновляют или вставляют строки через MERGE. Есть также потоки, которые время от времени удаляют строки, поэтому данные таблицы очень изменчивы. Потоки, выполняющие upserts, иногда...