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

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

1
повышение производительности запросов за счет удаления внутреннего хеш-оператора оператора
Пытаясь применить содержание этого вопроса ниже к моей собственной ситуации, я немного сбит с толку, как я мог бы избавиться от оператора Hash Match (Inner Join), если это возможно. Производительность запросов к SQL Server - устранение необходимости в хешировании (внутреннее объединение) Я заметил, что стоимость составляет 10%, и мне было …

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

2
Почему мой план плана не используется?
Недавно мы столкнулись с проблемой переломного момента, и некоторые из наших запросов отчетов, которые раньше выполнялись в течение нескольких секунд, теперь занимают более 2 минут, поскольку оптимизатор запросов просто игнорирует некластеризованный индекс в столбце поиска. Пример запроса ниже: select top 100 * from [dbo].[t_Call] where ID > 0 and throwtime …

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

2
Почему этот рекурсивный CTE с параметром не использует индекс, когда он использует литерал?
Я использую рекурсивный CTE в древовидной структуре, чтобы перечислить всех потомков определенного узла в дереве. Если я напишу значение литерального узла в своем WHEREпредложении, SQL Server фактически применяет CTE только к этому значению, предоставляя план запроса с низким фактическим числом строк и так далее : Однако, если я передаю значение …

3
Как я могу получить итоги последних строк быстрее?
В настоящее время я разрабатываю таблицу транзакций. Я понял, что потребуется подсчет промежуточных итогов для каждой строки, и это может привести к снижению производительности. Поэтому я создал таблицу с 1 миллионом строк для целей тестирования. CREATE TABLE [dbo].[Table_1]( [seq] [int] IDENTITY(1,1) NOT NULL, [value] [bigint] NOT NULL, CONSTRAINT [PK_Table_1] PRIMARY …

1
Почему план с ПОЛНОЙ оптимизацией показывает простую параметризацию?
Я читал, что только простые планы могут быть простыми параметризованными , и что не все запросы (даже если план тривиальный) могут быть простыми параметризованными . Тогда почему этот план показывает полную оптимизацию и простую параметризацию одновременно?

1
100% CPU с плохим планом исполнения
У меня огромная проблема со 100% -ными скачками ЦП из-за неверного плана выполнения, используемого конкретным запросом. Я провожу недели, теперь решаю сам. Моя база данных Моя примерная БД содержит 3 упрощенные таблицы. [Регистратор данных] CREATE TABLE [model].[DataLogger]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [ProjectID] [bigint] NULL, CONSTRAINT [PK_DataLogger] PRIMARY KEY CLUSTERED …

1
SQLite3 не использует закрывающий индекс с выражением json_extract
Я пытаюсь создать индекс в SQLite3(3.18), используя json_extractвыражения. Моя цель состоит в том, чтобы выполнять запросы, которые требуют только индекса для получения результатов. Причина этого заключается в том, что json_extractэто дорогостоящая операция, которая может снизить производительность при работе с большими наборами данных и / или значениями. Я пришел к выводу, …

1
План выполнения показывает отсутствующий индекс, но запрос быстрый
При просмотре фактического плана выполнения он показывает отсутствующие индексы, даже если запрос занимает менее 1 секунды. SELECT Account.AccountID, Account.Name FROM account LEFT OUTER JOIN accountfeaturesetting afs ON afs.accountid = account.accountid and afs.featureid = 'Schedules' and afs.settingid = 'EditReasons' WHERE ISNULL(afs.Value, '0') = '0' AND EXISTS (SELECT 1 FROM program WHERE …

2
Почему при поиске в столбце BIGINT используются операторы дополнительного постоянного сканирования, вычисления скалярных и вложенных циклов?
Когда я смотрю на фактический план выполнения некоторых из моих запросов, я замечаю, что литеральные константы, используемые в предложении WHERE, отображаются в виде вложенной цепочки вычисления скаляра и константы сканирования . Чтобы воспроизвести это, я использую следующую таблицу CREATE TABLE Table1 ( [col1] [bigint] NOT NULL, [col2] [varchar](50) NULL, [col3] …

1
Что такое BMK Operator в SQLServer?
Я пытался ответить на этот вопрос, заявив, что из условия не является обязательным ... Но я застрял с оператором в плане ... ниже скриншот плана выполнения .. Как видите, в плане запроса есть оператор BMK, но нет указаний на то, как он рассчитывается. шаги, которые я до сих пор пробовал: …

2
Скалярный оператор в поиске предиката
У меня есть следующая упрощенная версия моего фактического запроса в SQL Server 2012. В нем есть скалярный оператор в предикате поиска при выборе данных из таблицы «Контейнеры». Какова цель скалярного оператора в этом предикате поиска? CREATE TABLE #EligibleOrders (OrderID INT PRIMARY KEY, StatusCD CHAR(3), CreatedOnDate DATETIME ) --insert logic into …

1
Установить статистику ввода / вывода для вложенных циклов
Рассмотрим следующий запрос: CREATE PROC dbo.GetPage @orderid AS INT = 0, -- anchor sort key @pagesize AS BIGINT = 25 AS SELECT TOP (@pagesize) orderid, orderdate, custid, empid FROM dbo.Orders WHERE orderid > @orderid ORDER BY orderid; exec GetPage 25,25 SET STATISTICS IO для указанного выше запроса: (25 row(s) affected) …

1
SQL Server, TOP против ROW_NUMBER
Я изучаю планы выполнения и пробую разные запросы, сравниваю их производительность и наткнулся на это: SELECT StatisticID FROM ( SELECT StatisticID, ROW_NUMBER() OVER (ORDER BY StatisticID) AS rn FROM FTCatalog.Statistic ) AS T WHERE T.rn <= 1000 ORDER BY rn SELECT TOP 1000 StatisticID FROM FTCatalog.Statistic ORDER BY StatisticID Они …

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