andrzejn: (Default)
[personal profile] andrzejn
Давным-давно, когда Windows и SQL серверов ещё не было, базы данных уже были, и в них уже были индексы (даже в таких экзотических, как Btrieve, где не было полей). В те времена программисты сами думали о том, какие индексы им нужны для наилучшего быстродействия, и сами явно вызывали поиск каждой записи по тому или иному индексу.

Потом появились SQL сервера, которые научились сами составлять планы исполнения запросов и подбирать под них подходящие индексы из наличных. Правда, поначалу они делали это плохо - им часто приходилось подсказывать, какой индекс лучше брать. И индексы по-прежнему надо было придумывать и создавать явными командами.

Потом в дополнение к индексам появились статистики, и сервера стали составлять всё лучшие планы запросов, пока не превзошли в этом абсолютное большинство людей. Но индексы и статистики по-преэнему надо было сочинять самим.

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

Следующий очевидный шаг - чтобы SQL сервера сами анализировали поступающие запросы в ходе обычной повседневной работы, сами создавали новые индексы и статистики, когда надо, а устаревшие - удаляли. А потом и вовсе отобрать эту возможность у программистов. Любопытно, это где-нибудь уже сделали?
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

andrzejn: (Default)
Андрій Новосьолов

June 2025

M T W T F S S
      1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sunday, 22 June 2025 20:16
Powered by Dreamwidth Studios