169 похожих чатов

Добрый день коллеги. Почему такое расхождение? Пробовал полностью перестроить индексы

с обновлением статистики. Не помогло.

27 ответов

76 просмотров

Не совсем понял Ваши действия. Надо либо Rebuild всех индексов, либо update statistics with full scan

Игорь-Беринчик Автор вопроса
val prad
Не совсем понял Ваши действия. Надо либо Rebuild в...

Объясню. Недавно работаю на текущем месте. Заметил что в большинстве запросов такая ситуация как на скрине, оптимизатор запросов неверно рассчитывает количество строк. Вчера уже взял пример запроса, на тестовой базе попробовал поиграться с индексами на конкретной таблице. Перестраивал индекс, обновлял статистику, удалял индексы и заново создавал, результат не меняется. при любых манипуляциях одинаковое время выполнения и количество строк. При этом сам скуль показывает что фрагментация индексов 0.

Игорь Беринчик
Объясню. Недавно работаю на текущем месте. Заметил...

Так надо слать DDL таблиц Запрос План - полностью , не огрызок И тогда можно обсуждать

Игорь-Беринчик Автор вопроса
Ilya Zviagin
Так надо слать DDL таблиц Запрос План - полностью ...

Хорошо. Попозже скину сам запрос и план обслуживание который использовал для индексов.

Игорь Беринчик
Хорошо. Попозже скину сам запрос и план обслуживан...

План обслуживания не нужен. Нужен план запроса

Вообще количество записей в узле плана запроса не Обязательно должно совпадать с реальным количеством записей это во-первых не нужно, во-вторых невозможно Потому что эти количества рассчитываются оптимизатором приблизительно на основе усреднённой статистики И то что там в узлах цифры показываются не те, что в реальности ни на что на самом деле не влияет, потому что оптимизатору запросов важны относительные количества записей в разных вариантах плана запроса чтобы выбрать тот или иной план по стоимости А вот абсолютное значение этих показателей Ну на самом деле это стоимости плана элементов плана и плана целиком, они не важны. И если у тебя в итоге выбирается правильный Ну то есть адекватный и хороший план запроса, то в общем-то беспокоиться больше не о чем

Игорь-Беринчик Автор вопроса
Ilya Zviagin
Вообще количество записей в узле плана запроса не ...

Может такое произойти из-за неоптимального запроса со стороны 1С?

Игорь Беринчик
Может такое произойти из-за неоптимального запроса...

Это даже постановка вопроса неверна, запрос может быть не оптимальным, но стоимость шагов плана может быть верной

Игорь Беринчик
Может такое произойти из-за неоптимального запроса...

Ну и самое главное не надо перестраивать индексы бездумно только из-за того что стоимости в планах по твоему мнению какие-то там кривые

Ilya Zviagin
Вообще количество записей в узле плана запроса не ...

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

Ilya Zviagin
Не влияет я выше написал Почему

ну то етсь оптимизатор ожидал 3 строки и выбрал нестед луп а прилетело на несколько порядков больше и типа длительность не поменяется да?

Andrey S
Несовпадение ожидаемого и полученного количества с...

Оценка оптимизатором количество записей то есть по сути Это стоимость шага запроса она не может быть точной в принципе и она не обязана совпадать с реальными значениями количество записей она и даётся пользователь в плане только как какая-то характеристическая оценка стоимости этого плана Она не должна и не может совпадать с реально количеством записей это в принципе невозможно

Игорь-Беринчик Автор вопроса
Игорь Лобанов
ну то етсь оптимизатор ожидал 3 строки и выбрал не...

вот и я так предположил что от этого может зависеть время выполнения запроса

Ilya Zviagin
не поменяется относительно чего?

ну епт не делай вид тчо не понимаешь относительно того если бы прилетело 3 строки как и ожидал

Andrey S
Это какой-то поток сознания.

Я просто набираю через Google диктат Он иногда лажает

Игорь Лобанов
ну епт не делай вид тчо не понимаешь относительно ...

Ну так если бы прилетело три строки то это гипотетическая ситуация, её никогда не могло быть, и с ней сравнивать бессмысленно

dta_index - это похоже на индекс, предложенный Database Engine Tuning Advisor. Я бы с осторожностью подходил к таким индексам - он может предлагать покрывающие индексы на десятки столбцов, что в большинстве случаев неоптимально.

Игорь-Беринчик Автор вопроса
Andrey S
dta_index - это похоже на индекс, предложенный Dat...

то есть? лучше не трогать если сомневаешься?

Игорь Беринчик
то есть? лучше не трогать если сомневаешься?

В данном случае, надо посмотреть на его структуру, оценить соотношение read/update, размер по отношению к таблице.

Игорь Беринчик
то есть? лучше не трогать если сомневаешься?

В общем случае - такие индексы слепо не создавать.

Похожие вопросы

Обсуждают сегодня

#include <stdio.h> #include <stdlib.h> #include <time.h> void mass_first_generate(int mass[5][7]) {     for (int N = 0; N < 5; N++) {         for (int A = 0; A < 7; A++) {   ...
Чувак
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Всем привет! Решаю 99 OCaml Problems и столкнулся со следующей проблемой (прошу палками не забивать, я OCaml практически не трогал до этого момента): open OUnit2 let create_...
К|/|pи/\/\ 6е3yглbIи
2
https://www.linkedin.com/posts/ugama-benedicta-kelechi-codergirl-103041300_mobiledevelopment-fluttertraining-handsonlearning-activity-7263445699227254784-IdHB?utm_source=share...
CoderGirl
16
возможно ли как-то передать в электрон или таури медиа поток с рендера 2д движка? двиг запускается как dll, а дальше надо как-то отправлять рендер кодировать не подходит, зр...
Kyle Nekto
7
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
Помогите пожалуйста. Делаю систему плагинов. Проблема сейчас в такая: плагины загружаются в основном потоке. FLibHandle := SafeLoadLibrary(FFileName) Но нужно еще выполнить фу...
Илья 🤣
10
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
12
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Карта сайта