Запитання з тегом «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 Rekompile vs OPTIMIZE FOR NEKNOW
Таким чином, у нас вранці тривалий пробіг, що спричинив проблеми (30 сек + час роботи) Ми вирішили перевірити, чи не винна нюхання параметрів. Отже, ми переписали процедуру і встановили вхідні параметри змінним, щоб перемогти нюхування параметра. Перевірений / справжній підхід. Бам, час запиту покращився (менше 1 сек). При перегляді плану …

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

2
Як (і чому) ТОП впливає на план виконання?
Для помірно складного запиту, який я намагаюся оптимізувати, я помітив, що видалення 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 = …

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 …


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 dbo.MyTable …

1
SQL Server 2014: будь-яке пояснення непослідовної оцінки самостільності кардинальності?
Розглянемо наступний план запитів у SQL Server 2014: У плані запитів самостійне приєднання ar.fId = ar.fIdдає оцінку в 1 рядок. Однак це логічно суперечлива оцінка: arмає 20,608рядки і лише одне чітке значення fId(точно відображено в статистиці). Тому це з'єднання виробляє повний поперечний добуток рядків ( ~424MMрядків), внаслідок чого запит працює …

3
Індекс на персистовані обчислені стовпці потребує пошуку ключа, щоб отримати стовпці в обчисленому виразі
Це запитання було перенесено із переповнення стека, оскільки на нього можна відповісти в адміністраторі баз даних Stack Exchange. Мігрували 6 років тому . У мене на столі зберігається обчислюваний стовпчик, який просто складається з з'єднаних стовпців, наприклад CREATE TABLE dbo.T ( ID INT IDENTITY(1, 1) NOT NULL CONSTRAINT PK_T_ID PRIMARY …

1
Чи є якісь ризики надання дозволу користувачам SQL Server SHOWPLAN?
Це запитання було перенесено із переповнення стека, оскільки на нього можна відповісти в адміністраторі баз даних Stack Exchange. Мігрували 7 років тому . Я роблю деяку настройку продуктивності у великій базі даних SQL-сервера 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.