Автоматизация
Friday, 11 September 2009 10:17Давным-давно, когда Windows и SQL серверов ещё не было, базы данных уже были, и в них уже были индексы (даже в таких экзотических, как Btrieve, где не было полей). В те времена программисты сами думали о том, какие индексы им нужны для наилучшего быстродействия, и сами явно вызывали поиск каждой записи по тому или иному индексу.
Потом появились SQL сервера, которые научились сами составлять планы исполнения запросов и подбирать под них подходящие индексы из наличных. Правда, поначалу они делали это плохо - им часто приходилось подсказывать, какой индекс лучше брать. И индексы по-прежнему надо было придумывать и создавать явными командами.
Потом в дополнение к индексам появились статистики, и сервера стали составлять всё лучшие планы запросов, пока не превзошли в этом абсолютное большинство людей. Но индексы и статистики по-преэнему надо было сочинять самим.
Потом практически во все сервера добавили утилиты-оптимизаторы, которые анализировали предложенные запросы на наличных данных и, зная тайные алгоритмы планировщика, подсказывали, какие индексы и статистики надо ещё создать, чтобы повысить скорость. Но подбирать список запросов, просматривать список советов и запускать его на исполнение по-прежнему нужно вручную.
Следующий очевидный шаг - чтобы SQL сервера сами анализировали поступающие запросы в ходе обычной повседневной работы, сами создавали новые индексы и статистики, когда надо, а устаревшие - удаляли. А потом и вовсе отобрать эту возможность у программистов. Любопытно, это где-нибудь уже сделали?
Потом появились SQL сервера, которые научились сами составлять планы исполнения запросов и подбирать под них подходящие индексы из наличных. Правда, поначалу они делали это плохо - им часто приходилось подсказывать, какой индекс лучше брать. И индексы по-прежнему надо было придумывать и создавать явными командами.
Потом в дополнение к индексам появились статистики, и сервера стали составлять всё лучшие планы запросов, пока не превзошли в этом абсолютное большинство людей. Но индексы и статистики по-преэнему надо было сочинять самим.
Потом практически во все сервера добавили утилиты-оптимизаторы, которые анализировали предложенные запросы на наличных данных и, зная тайные алгоритмы планировщика, подсказывали, какие индексы и статистики надо ещё создать, чтобы повысить скорость. Но подбирать список запросов, просматривать список советов и запускать его на исполнение по-прежнему нужно вручную.
Следующий очевидный шаг - чтобы SQL сервера сами анализировали поступающие запросы в ходе обычной повседневной работы, сами создавали новые индексы и статистики, когда надо, а устаревшие - удаляли. А потом и вовсе отобрать эту возможность у программистов. Любопытно, это где-нибудь уже сделали?
no subject
Date: Friday, 11 September 2009 07:59 (UTC)GetGE GetEQ =))
no subject
Date: Friday, 11 September 2009 08:03 (UTC)отобрать у программистов не нужно
Date: Friday, 11 September 2009 12:01 (UTC)А вообще да.
no subject
Date: Friday, 11 September 2009 13:53 (UTC)что SQL DBMSы появились раньше btrieve.
правда, на ПК они пришли, действительно, позже.
no subject
Date: Friday, 11 September 2009 13:55 (UTC)следующий очевидный шаг -
чтобы компутеры сами проектировали
схему БД. для начала, хотя бы,
сами выполняли нормализацию.
(со страхом) или это уже есть ?
no subject
Date: Friday, 11 September 2009 14:14 (UTC)no subject
Date: Friday, 11 September 2009 18:43 (UTC)Чайник: написал программу - не идет.
Гуру: ты что написал? "Хочу базу данных". Конечно, не пойдет. Добавь "чтоб работала". 7:)))
no subject
Date: Sunday, 13 September 2009 11:17 (UTC)