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

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

4
Почему мой запрос неожиданно стал медленнее, чем вчера?
[Приветствия] (отметьте один) [ ] Well trained professional, [ ] Casual reader, [ ] Hapless wanderer, У меня есть (отметьте все подходящие варианты) [ ] query [ ] stored procedure [ ] database thing maybe это работало нормально (если применимо) [ ] yesterday [ ] in recent memory [ ] …

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

3
Чрезмерное предоставление памяти для сортировки
Почему этому простому запросу предоставляется столько памяти? -- Demo table CREATE TABLE dbo.Test ( TID integer IDENTITY NOT NULL, FilterMe integer NOT NULL, SortMe integer NOT NULL, Unused nvarchar(max) NULL, CONSTRAINT PK_dbo_Test_TID PRIMARY KEY CLUSTERED (TID) ); GO -- 100,000 example rows INSERT dbo.Test WITH (TABLOCKX) (FilterMe, SortMe) SELECT TOP …

3
Параметр Sniffing vs VARIABLES vs Recompile vs OPTIMIZE FOR UNKNOWN
Таким образом, у нас был длительный процесс, вызывающий проблемы этим утром (30 секунд + время выполнения). Мы решили проверить, не виноват ли сниффинг параметров. Итак, мы переписали proc и установили входящие параметры в переменные, чтобы избежать перехвата параметров. Испытанный / верный подход. Bam, время запроса улучшилось (менее 1 секунды). При …

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

2
Как (и почему) TOP влияет на план выполнения?
Для довольно сложного запроса, который я пытаюсь оптимизировать, я заметил, что удаление TOP nпредложения меняет план выполнения. Я бы предположил, что когда запрос включает TOP nв себя механизм базы данных, он будет запускать запрос, игнорируя TOPпредложение, а затем в конце просто сократит этот результат до n запрошенных строк. Графический план …

2
Оптимизация планов с помощью XML-ридеров
Выполнение запроса отсюда, чтобы извлечь тупиковые события из сеанса расширенных событий по умолчанию SELECT CAST ( REPLACE ( REPLACE ( XEventData.XEvent.value ('(data/value)[1]', 'varchar(max)'), '<victim-list>', '<deadlock><victim-list>'), '<process-list>', '</victim-list><process-list>') AS XML) AS DeadlockGraph FROM (SELECT CAST (target_data AS XML) AS TargetData FROM sys.dm_xe_session_targets st JOIN sys.dm_xe_sessions s ON s.address = st.event_session_address WHERE …

2
Использование 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 …


3
Почему 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 IX_MyTable_SomeTimestamp_Includes ON dbo.MyTable (SomeTimestamp ASC) INCLUDE(Id, SomeInt) CREATE NONCLUSTERED INDEX IX_MyTable_Id_SomeBit_Includes ON …

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

3
Индекс по столбцу Постоянный вычисляемый нуждается в поиске ключа, чтобы получить столбцы в вычисляемом выражении
Этот вопрос был перенесен из переполнения стека, поскольку на него можно ответить в Exchange Stack Exchange для администраторов баз данных. Мигрировал 6 лет назад . У меня есть постоянный вычисляемый столбец в таблице, который просто состоит из сцепленных столбцов, например CREATE TABLE dbo.T ( ID INT IDENTITY(1, 1) NOT NULL …

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

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

1
Откуда происходят это постоянное сканирование и левое внешнее соединение в тривиальном плане запроса 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 = AccountId FROM Accounts WHERE AccountId='guid-here' выполняется с планом запроса, состоящим из …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.