Запитання з тегом «cardinality-estimates»

1
SQL Server 2014: будь-яке пояснення непослідовної оцінки самостільності кардинальності?
Розглянемо наступний план запитів у SQL Server 2014: У плані запитів самостійне приєднання ar.fId = ar.fIdдає оцінку в 1 рядок. Однак це логічно суперечлива оцінка: arмає 20,608рядки і лише одне чітке значення fId(точно відображено в статистиці). Тому це з'єднання виробляє повний поперечний добуток рядків ( ~424MMрядків), внаслідок чого запит працює …

2
Чому LEN () функціонує погано заниженою кардинальністю у SQL Server 2014?
У мене є таблиця зі стовпчиком рядка та присудком, який перевіряє наявність рядків з певною довжиною. У SQL Server 2014 я бачу оцінку в 1 рядок незалежно від довжини, на яку я перевіряю. Це дає дуже погані плани, оскільки насправді є тисячі чи навіть мільйони рядків, і SQL Server вирішує …

2
Чому підзапит знижує оцінку рядка до 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; Я б очікував, що остаточна оцінка рядка для цього запиту буде дорівнює кількості рядків у X_HEAPтаблиці. Що …

2
Оцінка кардинальності для оператора LIKE (локальні змінні)
У мене склалося враження, що при використанні LIKEоператора в усіх оптимізаціях для невідомих сценаріїв, як застарілі, так і нові СЕ використовують оцінку 9% (за умови, що відповідна статистика доступна і оптимізатору запитів не потрібно вдаватися до припущень про вибірковість). Під час виконання нижчезазначеного запиту проти кредитної бази даних я отримую …

2
Чому оператор Concatenation оцінює менше рядків, ніж його введення?
У наведеному нижче фрагменті плану запитів здається очевидним, що оцінка рядка для Concatenationоператора повинна бути ~4.3 billion rowsабо сума оцінок рядків для двох його входів. Однак складається оцінка ~238 million rows, що призводить до неоптимальної Sort/ Stream Aggregateстратегії, яка розсипає сотні ГБ даних на tempdb. Логічно послідовна оцінка в цьому …

3
Чому така оцінка кардинальності приєднання настільки велика?
Я переживаю те, що, на мою думку, є неможливо високою оцінкою кардинальності для наступного запиту: 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 = lnk.LINK_ID LEFT OUTER JOIN X_DETAIL_2 d2 …

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> Чому воно має попередження? Як …

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

1
Оцінка кардинальності поза гістограмою
Налаштування У мене виникають проблеми з розумінням оцінки кардинальності. Ось моя тестова установка: версія 2010 року бази даних переповнення стека SQL Server 2017 CU15 + GDR (KB4505225) - 14.0.3192.2 новий CE (рівень сумісності 140) Я маю цю процедуру: USE StackOverflow2010; GO CREATE OR ALTER PROCEDURE #sp_PostsByCommentCount @CommentCount int AS BEGIN …

1
Сортувати розливи до tempdb, але орієнтовні рядки дорівнюють фактичним рядкам
На SQL Server 2016 SP2 з максимальною пам’яттю 25 ГБ є запит, який виконується приблизно 80 разів за хвилину. Запит розсипає близько 4000 сторінок до tempdb. Це спричиняє багато IO на диску tempdb. Якщо ви подивитесь на план запитів (спрощений запит), ви побачите, що кількість оцінених рядків дорівнює кількості фактичних …

1
Оцінка чистоти частково охоплюючих предикатів
На даний момент я намагаюся з’ясувати, як SQL Server оцінює кардинальність предикатів діапазону, які частково охоплюють крок гістограми. В Інтернеті, при оцінці кардинальності для статистики і для кроку в статистиці, я натрапив на подібне запитання, і Пол Уайт дав досить цікаву відповідь на нього. Відповідно до відповіді Павла, формули для …

2
Проблема оцінки кардинальності при внутрішньому з'єднанні
Я намагаюся зрозуміти, чому оцінка рядків настільки жахливо неправильна, ось мій випадок: Просте приєднання - використання SQL Server 2016 sp2 (та сама проблема на sp1), dbcompatiblity = 130. select Amount_TransactionCurrency_id, CurrencyShareds.id from CurrencyShareds INNER JOIN annexes ON Amount_TransactionCurrency_id = CurrencyShareds.Id option (QUERYTRACEON 3604, QUERYTRACEON 2363); SQL оцінює 1 рядок, тоді …

1
Зміни в оцінках щодо предикатів, які містять SUBSTRING () у SQL Server 2016?
Чи є документація чи дослідження щодо змін у SQL Server 2016 щодо того, як оцінюється кардинальність для предикатів, що містять SUBSTRING () або інших рядкових функцій? Причина, про яку я запитую, полягає в тому, що я дивився на запит, продуктивність якого погіршилася в режимі сумісності 130, і причина була пов'язана …

1
Як оптимізатор 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 Якщо я дивлюся на прогнозний план виконання, то бачу таке: Початковий пошук індексу (праворуч угорі) використовує індекс IX_SalesOrderHeader_CustomerID та здійснює пошук у …

3
Запит на 100 разів повільніше в SQL Server 2014, рядок Spool Count Spool оцінюють винуватця?
У мене є запит, який працює в SQL Server 2012 за 800 мілісекунд і займає близько 170 секунд у SQL Server 2014 . Я думаю, що я звузив це до поганої оцінки кардинальності для Row Count Spoolоператора. Я читав трохи про операторів котушки (наприклад, тут і тут ), але все …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.