Применение искинов - шоссе империализма (Стенгазета русификаторов ИТ)

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Планирование выполнения программы

Сообщений 1 страница 2 из 2

1

Я знаю, что SQL-серверы планируют выполнение запросов, но не знаю, как они это делают.
У меня есть разные догадки, но абстрактно. (Т.е. можно открыть план выполнения запроса, увидеть, что план выполнения запроса зависит от статистики по данным, но и только).

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

Не имеет смысла хранить значения показателей, которые мало влияют на конечный итог.
Но в каких случаях принимать решения по наращиванию сбора статистики и по сокращению сбора статистики? Как это делать технически (нужны примеры/фреймворки на каком-нибудь языке программирования)?

Что бы такое почитать? (мне в практических целях, поэтому учебник по матстатистике советовать не поможет)

Отредактировано Лис (2018-12-15 05:24:26)

0

2

Первое что приходит в голову, сделать набор интерфейсов и классов для работы с показателями.

Сделать интерфейс:
абстрактный_шаг, который будет иметь три реализации:
1) отдельное_действие,
2) группа_действий,
3) цикл, его счётчик и вложенный абстрактый_шаг

сделать классы "показатель", "значение проказателя", ну там ещё, какого он типа - логический он или числовой, в каких единицах измеряется.

счётчик - это показатель, его можно собирать или не собирать.

фактор - это то, что влияет на ветвления в программе, тоже показатель, но его значение неизвестно.

можно ещё показателей насоздавать - время выполнения того или иного шага, время выполнения цикла.
и формулы наделать, какие показатели от каких зависят, и каким образом.

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

Как бы только всё это делать автоматизированно?

Отредактировано Лис (2018-12-15 07:06:52)

0