2012-05-29 2 views
1

Может ли кто-нибудь предоставить мне точную разницу между настройкой базы данных и оптимизацией запросов к базе данных?В чем разница между настройкой базы данных и оптимизацией запросов к базе данных?

Я прочитал следующие ссылки на Википедию:

http://en.wikipedia.org/wiki/Query_optimization

http://en.wikipedia.org/wiki/Database_tuning

По моему разумению представляется, что настройка базы данных не что иное, как это оптимизация запросов к базе данных. Я все еще запутался

В чем же разница между этими двумя?

ответ

1

Я бы сказал, что оптимизация запросов - это подмножество настройки базы данных. Если вы посмотрите на какую-либо общую книгу по настройке производительности, вы увидите только одну главу, связанную с настройкой запросов. Другая глава связана с разделением, индексированием, нагрузочным тестированием, блокировкой и блокировкой, оборудованием, памятью, схемой и т. Д.

1

Я понимаю, что оптимизация запросов связана с самим запросом, так, например, вы можете плохо улучшить реализовано объединение, удаление полей, которые не нужны, и так далее. Вещи, которые повлияли бы только на анализируемый запрос.

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

2

Настройка базы данных относится к настройке самой базы данных. Его доступ к памяти и памяти. Организация различных буферов и параметров времени выполнения. А также оптимизация схем с использованием индексов, (де) нормализации, параметров хранения объектов схемы и многих других.

Оптимизация запросов выполняется только с одним заявлением за раз. Это может потребовать реструктуризации статута, создания индексов и материализованных представлений, добавления подсказок и обновления статистики.

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