2
Интересно, почему у меня есть фактическое количество строк, большее, чем предполагаемое количество строк?Фактическое количество строк, большее, чем предполагаемое количество строк
Таблица имеет кластерный первичный ключ определяется как:
CONSTRAINT [PK_AIRQUALITYTS] PRIMARY KEY CLUSTERED
(
[FeatureID] ASC,
[ParameterID] ASC,
[MeasurementDateTime] DESC
)
Хотя я обновленные статистические данные по MeasurementDateTime
колонке и перестроения индекса также.
Вопросы:
Почему фактическое количество строк больше, чем оценочное число строк? И есть ли у него какой-то удар производительности?
Должен ли я всегда пытаться получить фактическое количество строк, равное расчетному количеству строк? Или сколько изменений в подсчете строк в фактических и оцененных не должно нас беспокоить?
какой скрипт вы использовали для обновления статистики? вы использовали WITH FULLSCAN? –
ответ на ваш вопрос, одна из цифр - оценка - оценка основана на статистической выборке, статистика может устареть, но это не единственная причина, по которой может быть вычислена оценка - вы можете попробовать обновить статистику с ОБНОВЛЕНИЕМ СТАТИСТИКА
ответ
Q1: Это зависит от того, сколько строк в общей сложности содержится в этой таблице. Так как SQL решает, какие операции следует использовать при построении плана выполнения. AFIK, оптимизатор запросов SQL решит использовать SCAN через операцию SEEK, если он оценит около 1/3 или более таблицы/индекса, необходимо будет найти [cardinality estimate question on SO]
Итак, короткий вопрос: это зависит по конкретному случаю.
Q2: Общее правило - попытаться оптимизировать только те запросы, которые, как вы знаете, имеют проблемы с производительностью.
источник
2016-10-31 09:54:17
30% ... Я думаю, что это больше похоже на 2 - 3%. –
Полезная информация в этой статье на sqlmag.com: [** Точка перехвата ** - Понимание того, как оптимизатор запросов SQL Server принимает решения] (http://sqlmag.com/database-administration/tipping-point) –
@TT ., проверьте также этот: http://stackoverflow.com/questions/4579358/at-what-cardinality-does-sql-server-switch-to-an-index-scan-vs-seek –
две основные причины:
Что касается 2, часто это связано с параметром нюхают проблемы, которые в свою очередь, из-за к определенным типам запросов.
Мы не знаем, какова ваша рабочая нагрузка - запрос или хранимая процедура.
Существует много способов для разработки, если вы используете устаревший план и много способов его вымыть, и все они включены в Google.
источник
2016-10-31 10:24:57
Смежные вопросы