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

12
Физическая операция конкатенации: гарантирует ли она порядок выполнения?

В стандартном SQL результат a union allне гарантируется в любом порядке. Итак, что-то вроде: select 'A' as c union all select 'B' Может вернуть две строки в любом порядке (хотя на практике в любой известной мне базе данных «A» будет стоять перед «B»). В SQL Server это превращается в план выполнения...

12
Последовательное сканирование PostgreSQL вместо индексного сканирования Почему?

Привет всем! У меня проблема с запросом к базе данных PostgreSQL, и мне интересно, может ли кто-нибудь помочь. В некоторых случаях мой запрос игнорирует созданный мной индекс, который используется для объединения двух таблиц dataи data_area. Когда это происходит, он использует последовательное...

12
Почему мое предложение WHERE имеет преимущество от «включенного» столбца?

Согласно этому ответу , если индекс не построен по столбцам, которые используются для ограничения, запрос не получит выгоды от индекса. У меня есть это определение: CREATE TABLE [dbo].[JobItems] ( [ItemId] UNIQUEIDENTIFIER NOT NULL, [ItemState] INT NOT NULL, [ItemPriority] INT NOT NULL,...

12
Функция Force Plan плана запросов не работает

Похоже, что план плана Query Store Force не обеспечивает выполнение плана. Я знаю о Query Store - принудительное не всегда означает принудительное ; тем не менее, мой план может измениться незначительно, но оптимизатор запросов может продолжать выбирать неверные индексы, выбор циклов и т. д. По...

11
Sql Server не может использовать индекс при простом бижекции

Это еще одна головоломка оптимизатора запросов. Может быть, я просто переоцениваю оптимизаторы запросов, или, может быть, я что-то упустил - поэтому я выкладываю это туда. У меня простой стол CREATE TABLE [dbo].[MyEntities]( [Id] [uniqueidentifier] NOT NULL, [Number] [int] NOT NULL, CONSTRAINT...

11
Поведение нечетного потока

Запрос: declare @X xml = ' <item ID = "0"/> <item ID = "1"/> <item/> <item/>'; select I.X.value('@ID', 'int') from @X.nodes('/item') as I(X); Результат: ----------- 0 1 NULL NULL План выполнения: Верхняя ветвь разделяет XML на четыре строки, а нижняя ветвь выбирает значение...

11
Как ответить, почему вдруг нам нужны индексы или запрос должен быть изменен

Я младший DBA с 3-х летним стажем. Наша работа заключается в точной настройке запросов или информировании разработчиков о том, что определенный код должен быть переписан или необходимы индексы. Один простой вопрос, который часто задает команда разработчиков: «Вчера все прошло нормально, что...

11
Было бы лучше, чтобы планы запросов были разделены по заявлению на повторное использование?

Из моих ограниченных знаний о том, как планы запросов компилируются, хранятся и извлекаются запросами, я понимаю, что запрос с несколькими утверждениями или хранимая процедура будет генерировать свой план запроса, который будет храниться в кэше плана запросов, который будет использоваться запросом...

11
Понимание статистики, планов выполнения и «восходящей ключевой проблемы»

Я пытаюсь лучше понять (концептуально) взаимосвязь между статистикой, планами выполнения, выполнением хранимых процедур. Правильно ли я сказал, что статистика используется только при создании плана выполнения хранимой процедуры и не используется в реальном контексте выполнения? Другими словами,...

11
Почему я получаю неявное преобразование Int / Smallint в Varchar, и это действительно влияет на оценки кардинальности?

Я пытаюсь решить проблему с медленным выполнением запроса, используя Show Plan Analysis (SSMS) для фактического плана выполнения. Инструмент «Анализ» указывает, что оценки количества строк не совпадают с возвращенными результатами в нескольких местах плана, а также дает некоторые неявные...

11
ROW_NUMBER () без PARTITION BY по-прежнему генерирует итератор сегмента

Я пишу в своем следующем блоге о ранжировании и агрегировании оконных функций, в частности, об итераторах Segment и Sequence Project. Насколько я понимаю, Segment идентифицирует строки в потоке, которые составляют конец / начало группы, поэтому следующий запрос: SELECT ROW_NUMBER() OVER (PARTITION...

11
План запроса SQL Server XML: длина QueryPlanHash

ОБНОВЛЕНИЕ: Это определенно ошибка. Для получения полной информации см. Этот пункт подключения . При тестировании некоторых изменений в sp_BlitzCache (полное раскрытие, я один из авторов) я натолкнулся на то, что я считаю ошибкой в ​​нашем коде. В какой-то момент мы сопоставляем хэш плана запроса,...

11
Расчетный и фактический план запроса с вызовами функций

У меня есть этот запрос на сервере SQL, запрос репликации слиянием: SELECT DISTINCT b.tablenick, b.rowguid, c.generation, sys.fn_MSgeneration_downloadonly ( c.generation, c.tablenick ) FROM #belong b LEFT OUTER JOIN dbo.MSmerge_contents c ON c.tablenick = b.tablenick AND c.rowguid = b.rowguid;...

11
Почему запрос DELETE выполняется в одном формате намного дольше, чем в другом?

У меня есть определенный код очистки, который пытается удалить некоторые дубликаты. Это отлично работает на многих сайтах клиентов. Журналы говорят мне, что этот запрос потребляет от 1 до 45 секунд: DELETE FROM [tbl] WHERE [Id] NOT IN ( SELECT MIN([Id]) FROM [tbl] GROUP BY [IdProject],...

10
Почему первичный (кластерный) ключ не используется в этом запросе?

У меня есть таблица SQL Server 2008 R2, структура схемы выглядит следующим образом: CREATE TABLE [dbo].[CDSIM_BE] ( [ID] [bigint] NOT NULL, [EquipmentID] [varchar](50) NOT NULL, [SerialNumber] [varchar](50) NULL, [PyrID] [varchar](50) NULL, [MeasMode] [varchar](50) NULL, [ReadTime] [datetime] NOT...

10
Планы запросов меняют производительность в SQL Server 2014

Недавно мы обновили наш сервер с SQL Server 2008R2 до SQL Server 2014. У нас есть запрос, который нормально работал в 2008R2, но теперь в 2014 году он работает невероятно медленнее и имеет плохой план выполнения. Я сделал несколько тестов ... Переключите БД 2014 обратно в режим совместимости...

10
Почему не присоединиться к работе по удалению с sys.query_store_plan?

Ниже приведено упрощение проблемы производительности, возникающей в хранилище запросов: CREATE TABLE #tears ( plan_id bigint NOT NULL ); INSERT #tears (plan_id) VALUES (1); SELECT T.plan_id FROM #tears AS T LEFT JOIN sys.query_store_plan AS QSP ON QSP.plan_id = T.plan_id; plan_idКолонна...

10
Медленный полнотекстовый поиск из-за крайне неточных оценок строк

Полнотекстовые запросы к этой базе данных (хранение билетов RT ( Request Tracker )) выполняются очень долго. Таблица вложений (содержащая полнотекстовые данные) составляет около 15 ГБ. Схема базы данных выглядит следующим образом, это около 2 миллионов строк: rt4 = # \ d + вложения Таблица...

10
Есть ли способ получить оценку стоимости выполнения запроса в MySQL?

В PostgreSQL EXPLAIN или EXPLAIN ANALYZE будут показывать приблизительную стоимость выполнения запроса. Но EXPLAIN в MySQL не предоставляет эту информацию. Как я могу получить сметную стоимость без установки других инструментов? Я использую...