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

20
План выполнения в сравнении с STATISTICS IO order

Графические планы выполнения SQL Server читаются справа налево и сверху вниз. Есть ли значимый порядок в выводе SET STATISTICS IO ON? Следующий запрос: SET STATISTICS IO ON; SELECT * FROM Sales.SalesOrderHeader AS soh JOIN Sales.SalesOrderDetail AS sod ON soh.SalesOrderID = sod.SalesOrderID JOIN...

20
T-SQL запрос использует совершенно другой план в зависимости от количества строк, которые я обновляю

У меня есть оператор SQL UPDATE с предложением «TOP (X)», а строка, в которой я обновляю значения, содержит около 4 миллиардов строк. Когда я использую «TOP (10)», я получаю один план выполнения, который выполняется почти мгновенно, но когда я использую «TOP (50)» или больше, запрос никогда (по...

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...

20
Можете ли вы объяснить этот план выполнения?

Я исследовал что-то еще, когда наткнулся на эту вещь. Я генерировал тестовые таблицы с некоторыми данными и выполнял разные запросы, чтобы выяснить, как разные способы написания запросов влияют на план выполнения. Вот скрипт, который я использовал для генерации случайных тестовых данных: IF EXISTS...

19
Флаг трассировки 4199 - Включить глобально?

Это может относиться к категории мнений, но мне любопытно, если люди используют флаг трассировки 4199 в качестве параметра запуска для SQL Server. Для тех, кто его использовал, при каких обстоятельствах вы испытывали регрессию запросов? Это, безусловно, может показаться потенциальным выигрышем в...

18
Однорядная INSERT… SELECT намного медленнее, чем отдельный SELECT

Учитывая следующую таблицу кучи с 400 строками, пронумерованными от 1 до 400: DROP TABLE IF EXISTS dbo.N; GO SELECT SV.number INTO dbo.N FROM master.dbo.spt_values AS SV WHERE SV.[type] = N'P' AND SV.number BETWEEN 1 AND 400; и следующие настройки: SET NOCOUNT ON; SET STATISTICS IO, TIME OFF; SET...

18
Когда SQL Server предупреждает о чрезмерном предоставлении памяти?

Какие условия приводят к предупреждению плана выполнения «Чрезмерный грант» ? Грант памяти запроса обнаружил «ExcessiveGrant», что может повлиять на надежность. Размер гранта: начальный 5128 КБ, финальный 5128 КБ, использованный 16 КБ. SSMS Plan Explorer Showplan xml <Warnings>...

18
Как измерить или найти стоимость создания плана запроса?

У меня есть типичный случай, когда сниффинг параметров приводит к тому, что «плохой» план выполнения попадает в кэш плана, в результате чего последующее выполнение моей хранимой процедуры происходит очень медленно. Я могу «решить» эту проблему с помощью локальных переменных OPTIMIZE FOR ......

17
Предупреждение в плане запроса «Оценка мощности»

create table T(ID int identity primary key) insert into T default values insert into T default values go select cast(ID as varchar(10)) as ID from T where ID = 1 Запрос выше имеет предупреждение в плане запроса. <Warnings> <PlanAffectingConvert ConvertIssue="Cardinality Estimate"...

16
План неверных запросов SQL Server 2016 блокирует БД раз в неделю

Раз в неделю, в течение последних 5 недель, примерно в одно и то же время дня (раннее утро, может основываться на активности пользователей, когда люди начинают его использовать), SQL Server 2016 (AWS RDS, зеркальное отображение) начинает время ожидания большого количества времени. запросы....

16
Оператор использовал базу данных tempdb для разлива данных во время выполнения с уровнем разлива 2

Я изо всех сил пытаюсь минимизировать стоимость операции сортировки в плане запроса с предупреждением Operator usedtempdbto spill data during execution with spill level 2 Я обнаружил несколько сообщений, связанных с данными о разливах во время выполнения с уровнем разлива 1 , но не с уровнем 2....

16
Исключить оператор поиска ключей (кластеризованный), который снижает производительность

Как я могу исключить оператор Key Lookup (Clustered) в моем плане выполнения? Таблица tblQuotesуже имеет кластеризованный индекс (on QuoteID) и 27 некластеризованных индексов, поэтому я стараюсь больше не создавать. Я поместил столбец кластеризованного индекса QuoteIDв свой запрос, надеясь, что это...

15
Индекс не используется с `= any ()`, но используется с `in`

Таблица tимеет два индекса: create table t (a int, b int); create type int_pair as (a int, b int); create index t_row_idx on t (((a,b)::int_pair)); create index t_a_b_idx on t (a,b); insert into t (a,b) select i, i from generate_series(1, 100000) g(i) ; Индекс не используется с anyоператором:...

15
Как оптимизировать запрос T-SQL с использованием плана выполнения

У меня есть SQL-запрос, который я провел последние два дня, пытаясь оптимизировать, используя метод проб и ошибок и план выполнения, но безрезультатно. Пожалуйста, прости меня за это, но я опубликую весь план выполнения здесь. Я приложил усилия, чтобы сделать имена таблиц и столбцов в запросе и...

15
Почему существуют различия в плане выполнения между OFFSET… FETCH и старой схемой ROW_NUMBER?

Новая OFFSET ... FETCHмодель, представленная в SQL Server 2012, предлагает простую и быструю подкачку страниц. Почему вообще существуют различия, если учесть, что эти две формы семантически идентичны и очень распространены? Можно предположить, что оптимизатор распознает оба и оптимизирует их...

15
Какие факторы стоимости входят в оптимизатор при выборе различных типов катушек?

Spoolum В SQL Server есть несколько видов катушек. Меня интересуют две из них: Table Spool s и Index Spoo , за исключением запросов на изменение . Запросы «только для чтения», особенно на внутренней стороне объединения с вложенными циклами, могут использовать катушку таблиц или индексов, чтобы...

15
Интерпретация XML-кода Showplan для SQL Server

Я только что развернул на своем сайте функцию http://sqlfiddle.com, которая позволяет пользователям просматривать необработанные планы выполнения своих запросов. В случае PostgreSQL, MySQL и (в некоторой степени) Oracle рассмотрение исходного плана выполнения выглядит понятным. Однако, если вы...

15
План выполнения с несколькими отсутствующими индексами

Если вы выполните запрос с «Включить фактический план выполнения», план также предложит отсутствующие индексы. Детали индекса находятся внутри MissingIndexesтега в XML. Есть ли ситуация, когда план включает несколько предложений по индексам? Я пробовал разные sql-запросы, но не смог найти ни одного...

14
Уникальные обновления индексов и счетчики модификаций строк статистики

Учитывая следующую таблицу, уникальный кластерный индекс и статистику: CREATE TABLE dbo.Banana ( pk integer NOT NULL, c1 char(1) NOT NULL, c2 char(1) NOT NULL ); CREATE UNIQUE CLUSTERED INDEX pk ON dbo.Banana (pk); CREATE STATISTICS c1 ON dbo.Banana (c1); CREATE STATISTICS c2 ON dbo.Banana (c2);...