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

Стратегия, выбранная оптимизатором запросов для обработки запроса.

76
Почему мой запрос неожиданно стал медленнее, чем вчера?

[Приветствия] (отметьте один) [ ] Well trained professional, [ ] Casual reader, [ ] Hapless wanderer, У меня есть (отметьте все подходящие варианты) [ ] query [ ] stored procedure [ ] database thing maybe это работало нормально (если применимо) [ ] yesterday [ ] in recent memory [ ] at some point...

64
Поиск индекса против сканирования индекса

Глядя на план выполнения медленно выполняющегося запроса, я заметил, что некоторые узлы являются поиском по индексу, а некоторые - сканированием по индексу. В чем разница между поиском по индексу и сканированием по индексу? Который работает лучше? Как SQL выбирает одно над другим? Я понимаю, что...

40
Параметр Sniffing vs VARIABLES vs Recompile vs OPTIMIZE FOR UNKNOWN

Таким образом, у нас был длительный процесс, вызывающий проблемы этим утром (30 секунд + время выполнения). Мы решили проверить, не виноват ли сниффинг параметров. Итак, мы переписали proc и установили входящие параметры в переменные, чтобы избежать перехвата параметров. Испытанный / верный подход....

39
Основы плана выполнения - путаница с хэш-соответствием

Я начинаю изучать планы выполнения и не понимаю, как именно работает хеш-соответствие и почему оно будет использоваться в простом соединении: select Posts.Title, Users.DisplayName From Posts JOIN Users on Posts.OwnerUserId = Users.Id OPTION (MAXDOP 1) Насколько я понимаю, результаты сканирования...

35
Как (и почему) TOP влияет на план выполнения?

Для довольно сложного запроса, который я пытаюсь оптимизировать, я заметил, что удаление TOP nпредложения меняет план выполнения. Я бы предположил, что когда запрос включает TOP nв себя механизм базы данных, он будет запускать запрос, игнорируя TOPпредложение, а затем в конце просто сократит этот...

33
Использование EXCEPT в рекурсивном общем табличном выражении

Почему следующий запрос возвращает бесконечные строки? Я бы ожидал, что EXCEPTпункт прекратить рекурсию .. with cte as ( select * from ( values(1),(2),(3),(4),(5) ) v (a) ) ,r as ( select a from cte where a in (1,2,3) union all select a from ( select a from cte except select a from r ) x ) select a...

32
Почему SQL Server использует лучший план выполнения, когда я включаю переменную?

У меня есть запрос SQL, который я пытаюсь оптимизировать: DECLARE @Id UNIQUEIDENTIFIER = 'cec094e5-b312-4b13-997a-c91a8c662962' SELECT Id, MIN(SomeTimestamp), MAX(SomeInt) FROM dbo.MyTable WHERE Id = @Id AND SomeBit = 1 GROUP BY Id MyTable имеет два индекса: CREATE NONCLUSTERED INDEX...

27
SQL Server 2014: есть ли какое-либо объяснение непоследовательной оценки количества участников самостоятельного объединения?

Рассмотрим следующий план запросов в SQL Server 2014: В плане запроса самосоединение ar.fId = ar.fIdдает оценку в 1 строку. Однако это логически противоречивая оценка: arсодержит 20,608строки и только одно отдельное значение fId(точно отраженное в статистике). Следовательно, это соединение создает...

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

Этот вопрос был перенесен из переполнения стека, поскольку на него можно ответить в Exchange Stack Exchange для администраторов баз данных. Мигрировал 6 лет назад . У меня есть постоянный вычисляемый столбец в таблице, который просто состоит из сцепленных столбцов, например CREATE TABLE dbo.T ( ID...

23
Существуют ли какие-либо риски для предоставления пользователям разрешения SQL Server SHOWPLAN?

Этот вопрос был перенесен из переполнения стека, поскольку на него можно ответить в Exchange Stack Exchange для администраторов баз данных. Мигрировал 7 лет назад . Я выполняю некоторые настройки производительности для большой базы данных SQL Server 2008, и ИТ-группа не желает давать разрешение...

22
Кэширует ли SQL Server результат табличной функции с несколькими операторами?

Табличная функция с несколькими утверждениями возвращает свой результат в табличной переменной. Эти результаты когда-либо повторно используются, или функция всегда полностью оценивается каждый раз, когда она...

21
Строка «Recheck Cond:» в планах запросов с проверкой растрового индекса

Это ответвление от комментариев к предыдущему вопросу: Запрос Postgres 9.4.4 длится вечно При использовании PostgreSQL 9.4 всегда появляется Recheck Cond:строка после сканирования растрового индекса в планах запросов, выводимых с помощью EXPLAIN. Как в EXPLAINвыводе упомянутого вопроса: ->...

21
Откуда происходят это постоянное сканирование и левое внешнее соединение в тривиальном плане запроса SELECT?

У меня есть эта таблица: CREATE TABLE [dbo].[Accounts] ( [AccountId] UNIQUEIDENTIFIER UNIQUE NOT NULL DEFAULT NEWID(), -- WHATEVER other columns ); GO CREATE UNIQUE CLUSTERED INDEX [AccountsIndex] ON [dbo].[Accounts]([AccountId] ASC); GO Этот запрос: DECLARE @result UNIQUEIDENTIFIER SELECT @result...

21
Почему SQL Server «вычисляет скаляр», когда я выбираю постоянный вычисляемый столбец?

Три SELECTутверждения в этом коде USE [tempdb]; GO SET NOCOUNT ON; CREATE TABLE dbo.persist_test ( id INT NOT NULL , id5 AS (id * 5) , id5p AS (id * 5) PERSISTED ); INSERT INTO dbo.persist_test (id) VALUES (1), (2), (3); SELECT id FROM dbo.persist_test; SELECT id5 FROM dbo.persist_test; SELECT id5p...

21
Ключи хеша пробные и остаточные

Скажем, у нас есть такой запрос: select a.*,b.* from a join b on a.col1=b.col1 and len(a.col1)=10 Предполагая, что вышеупомянутый запрос использует Hash Join и имеет остаток, ключ пробника будет col1и остаток будет len(a.col1)=10. Но, просматривая другой пример, я мог видеть и зонд, и остаток как...

20
Должен ли я быть встревожен этим предупреждением NO JOIN PREDICATE?

Я устраняю неполадки неэффективной хранимой процедуры. В этом разделе процедуры выдается предупреждение NO JOIN PREDICATE select method = case methoddescription when 'blah' then 'Ethylene Oxide' when NULL then 'N/A' else methoddescription end, testmethod = case methoddescription when 'blah' then...