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

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


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

1
Почему 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 …

2
Строка «Recheck Cond:» в планах запросов с проверкой растрового индекса
Это ответвление от комментариев к предыдущему вопросу: Запрос Postgres 9.4.4 длится вечно При использовании PostgreSQL 9.4 всегда появляется Recheck Cond:строка после сканирования растрового индекса в планах запросов, выводимых с помощью EXPLAIN. Как в EXPLAINвыводе упомянутого вопроса: -> Bitmap Heap Scan on table_three (cost=2446.92..19686.74 rows=8159 width=7) Recheck Cond: (("timestamp" > (now() …

2
Запросы без хорошего плана найдено
У меня есть база данных SQL Server 2012. Я заметил значение Reason for early termination of statement optimizationдля некоторых запросов и все дал Good Enough Plan Found. Теперь мои вопросы: Каковы все возможные типы «Причины досрочного прекращения оптимизации выписки». Я искал это в msdn, но не получил полный список значений. …

4
План выполнения в сравнении с 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 Production.Product AS p ON sod.ProductID = p.ProductID; Создает …

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

1
Должен ли я быть встревожен этим предупреждением 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 'Biological Indicators' when NULL then 'N/A' else 'Dosimeter Reports' end, result …

2
Можете ли вы объяснить этот план выполнения?
Я исследовал что-то еще, когда наткнулся на эту вещь. Я генерировал тестовые таблицы с некоторыми данными и выполнял разные запросы, чтобы выяснить, как разные способы написания запросов влияют на план выполнения. Вот скрипт, который я использовал для генерации случайных тестовых данных: IF EXISTS (SELECT * FROM sys.objects WHERE object_id = …

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

1
Когда SQL Server предупреждает о чрезмерном предоставлении памяти?
Какие условия приводят к предупреждению плана выполнения «Чрезмерный грант» ? Грант памяти запроса обнаружил «ExcessiveGrant», что может повлиять на надежность. Размер гранта: начальный 5128 КБ, финальный 5128 КБ, использованный 16 КБ. SSMS Plan Explorer Showplan xml <Warnings> <MemoryGrantWarning GrantWarningKind="Excessive Grant" RequestedMemory="5128" GrantedMemory="5128" MaxUsedMemory="16" /> </Warnings>

1
Однорядная 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 STATISTICS XML …

2
Как измерить или найти стоимость создания плана запроса?
У меня есть типичный случай, когда сниффинг параметров приводит к тому, что «плохой» план выполнения попадает в кэш плана, в результате чего последующее выполнение моей хранимой процедуры происходит очень медленно. Я могу «решить» эту проблему с помощью локальных переменных OPTIMIZE FOR ... UNKNOWN, и OPTION(RECOMPILE). Однако я также могу погрузиться …

1
Предупреждение в плане запроса «Оценка мощности»
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" Expression="CONVERT(varchar(10),[xx].[dbo].[T].[ID],0)" /> </Warnings> Почему у него есть предупреждение? Как …

2
CROSS APPLY производит внешнее соединение
В ответ на подсчет SQL в разных разделах Эрик Дарлинг опубликовал этот код, чтобы обойти его из-за отсутствия COUNT(DISTINCT) OVER (): SELECT * FROM #MyTable AS mt CROSS APPLY ( SELECT COUNT(DISTINCT mt2.Col_B) AS dc FROM #MyTable AS mt2 WHERE mt2.Col_A = mt.Col_A -- GROUP BY mt2.Col_A ) AS ca; …

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