Вопросы с тегом «cardinality-estimates»

27
SQL Server 2014: есть ли какое-либо объяснение непоследовательной оценки количества участников самостоятельного объединения?

Рассмотрим следующий план запросов в SQL Server 2014: В плане запроса самосоединение ar.fId = ar.fIdдает оценку в 1 строку. Однако это логически противоречивая оценка: arсодержит 20,608строки и только одно отдельное значение fId(точно отраженное в статистике). Следовательно, это соединение создает...

26
Почему подзапрос уменьшает оценку строки до 1?

Рассмотрим следующий надуманный, но простой запрос: SELECT ID , CASE WHEN ID <> 0 THEN (SELECT TOP 1 ID FROM X_OTHER_TABLE) ELSE (SELECT TOP 1 ID FROM X_OTHER_TABLE_2) END AS ID2 FROM X_HEAP; Я ожидаю, что окончательная оценка строки для этого запроса будет равна количеству строк в...

26
Почему функция LEN () сильно недооценивает количество элементов в SQL Server 2014?

У меня есть таблица со строковым столбцом и предикатом, который проверяет строки определенной длины. В SQL Server 2014 я вижу оценку в 1 строку независимо от длины, которую я проверяю. Это приводит к очень плохим планам, потому что на самом деле есть тысячи или даже миллионы строк, и SQL Server...

24
Оценка мощности для оператора LIKE (локальные переменные)

У меня сложилось впечатление, что при использовании LIKEоператора во всех операциях оптимизации для неизвестных сценариев как устаревшие, так и новые CE используют оценку в 9% (при условии, что доступны соответствующие статистические данные и оптимизатору запросов не приходится прибегать к догадкам...

20
Почему оператор конкатенации оценивает меньше строк, чем его входные данные?

В следующем фрагменте плана запроса кажется очевидным, что Concatenationдолжна быть оценка строки для оператора ~4.3 billion rowsили сумма оценок строки для двух входных данных. Тем не менее, оценка ~238 million rowsпроизводится, что приводит к неоптимальным Sort/ Stream Aggregateстратегии ,...

18
Почему эта оценка кардинальности соединения настолько велика?

Я испытываю невероятно высокую оценку количества элементов для следующего запроса: SELECT dm.PRIMARY_ID FROM ( SELECT COALESCE(d1.JOIN_ID, d2.JOIN_ID, d3.JOIN_ID) PRIMARY_ID FROM X_DRIVING_TABLE dt LEFT OUTER JOIN X_DETAIL_1 d1 ON dt.ID = d1.ID LEFT OUTER JOIN X_DETAIL_LINK lnk ON d1.LINK_ID =...

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

15
Счетчик SQL Server 2014 (DISTINCT x) игнорирует вектор плотности статистики для столбца x

Для a, COUNT(DISTINCT)который имеет ~ 1 миллиард различных значений, я получаю план запроса с агрегатом хешей, который оценивается в ~ 3 миллиона строк. Почему это происходит? SQL Server 2012 дает хорошую оценку, так что это ошибка в SQL Server 2014, о которой я должен сообщить в Connect? Запрос и...

14
Сортировать разливы в базу данных tempdb, но предполагаемые строки равны фактическим строкам

На SQL Server 2016 с пакетом обновления 2 (SP2) с максимальной памятью, установленной на 25 ГБ, у нас есть запрос, который выполняется примерно 80 раз в минуту. Запрос проливает около 4000 страниц в базу данных tempdb. Это приводит к большому количеству операций ввода-вывода на диске в базе данных...

14
Оценка мощности вне гистограммы

Настроить У меня возникли проблемы с пониманием оценки количества элементов. Вот моя тестовая установка: версия базы данных Stack Overflow 2010 года SQL Server 2017 CU15 + GDR (KB4505225) - 14.0.3192.2 новый CE (уровень совместимости 140) У меня есть этот процесс: USE StackOverflow2010; GO CREATE...

13
Изменения в оценках для предикатов, которые содержат SUBSTRING () в SQL Server 2016?

Существуют ли какие-либо документы или исследования об изменениях в SQL Server 2016 относительно оценки мощности множества предикатов, содержащих SUBSTRING () или другие строковые функции? Причина, по которой я спрашиваю, состоит в том, что я смотрел на запрос, производительность которого снизилась...

13
Запрос в 100 раз медленнее в SQL Server 2014, оценка количества строк в буфере строк Оценка виновника?

У меня есть запрос, который выполняется в 800 миллисекунд в SQL Server 2012 и занимает около 170 секунд в SQL Server 2014 . Я думаю, что я сузил это до плохой оценки кардинальности для Row Count Spoolоператора. Я немного читал об операторах спула (например, здесь и здесь ), но все еще не могу...

13
Как оптимизатор SQL Server оценивает количество строк в объединенной таблице?

Я выполняю этот запрос в базе данных AdventureWorks2012 : SELECT s.SalesOrderID, d.CarrierTrackingNumber, d.ProductID, d.OrderQty FROM Sales.SalesOrderHeader s JOIN Sales.SalesOrderDetail d ON s.SalesOrderID = d.SalesOrderID WHERE s.CustomerID = 11077 Если я посмотрю на примерный план выполнения, я...

13
Задача оценки мощности множества на внутреннем объединении

Я изо всех сил пытаюсь понять, почему оценка строк так ужасно неправильна, вот мой случай: Простое объединение - с использованием SQL Server 2016 sp2 (та же проблема, что и для sp1), dbcompatiblity = 130. select Amount_TransactionCurrency_id, CurrencyShareds.id from CurrencyShareds INNER JOIN...

12
Зачем оператору параллелизма (потоки перераспределения) уменьшать оценки строк до 1?

Я использую SQL Server 2012 Enterprise. Я столкнулся с планом SQL, демонстрирующим некоторое поведение, которое я не нахожу полностью интуитивным. После тяжелой операции параллельного сканирования индекса происходит операция параллелизма (потоки перераспределения), но она убивает оценки строк,...

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

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

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

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

10
Сортировка разливов в tempdb из-за varchar (max)

На сервере с 32 ГБ мы используем SQL Server 2014 SP2 с максимальной памятью 25 ГБ, у нас есть две таблицы, здесь вы найдете упрощенную структуру обеих таблиц: CREATE TABLE [dbo].[Settings]( [id] [int] IDENTITY(1,1) NOT NULL, [resourceId] [int] NULL, [typeID] [int] NULL, [remark] [varchar](max)...

10
Преобразование типов в выражении может повлиять на «CardinalityEstimate» при выборе плана запроса?

Я поддерживаю архивную базу данных, которая хранит исторические данные в секционированных представлениях. Столбец разделения - это дата и время. Каждая таблица в представлении хранит данные за один месяц. Мы ограничиваем события в каждой таблице проверочным ограничением в столбце datetime. Это...

9
Как намекнуть присоединение «многие ко многим» в SQL Server?

У меня есть 3 "большие" таблицы, которые объединяются в пару столбцов (обе int). Таблица1 имеет ~ 200 миллионов строк Таблица2 имеет ~ 1,5 миллиона строк Таблица3 имеет ~ 6 миллионов строк Каждая таблица имеет кластерный индекс Key1, Key2и затем еще один столбец. Key1имеет низкую мощность и очень...