Какие существуют хорошие ресурсы для понимания настройки базы данных для основных движков и продвижения ваших знаний в этой области?
Идея этого вопроса состоит в том, чтобы собрать накладную нагрузку ресурсов, которые неизменно существуют, так что люди могут иметь "одну остановку" магазина знаний о хороших, одобренных экспертами ресурсах.
Общий SQL
MySQL
Oracle
MS SQL Server
Sybase SQL Anywhere
JDBC
Oracle очень собственный Tom Kyte имеет фантастический репозиторий для каждого типа проблем производительности, которые можно себе представить на http://asktom.oracle.com. Он обычно занимает время, чтобы воссоздать конкретные проблемы и дает очень подробные объяснения.
Этот парень отвечает на не-тот же запрос, вероятно, хорошее начало.
И что-то для PostgreSQL: "Оптимизация производительности" на официальном wiki.
Если вы используете базу данных Oracle, это руководство также может помочь. http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/toc.htm
Для MySQL настройка библии производительности Высокая производительность MySQL
Быстрая оптимизация PostgreSQL (оптимизация запросов)
Короткое чтение, много объясняет многое и "работает" - настоящий пример, который хорош для тех из нас, которые лучше учатся этому пути.
После просмотра ссылки wiki на PostgreSQL, я решил бы отредактировать это сообщение со ссылками для mysql/oracle docs, на самом деле не руководства по оптимизации, но оба являются хорошими ресурсами, особенно mysql. Для оптимизации и любых других функций настройки.
Я бы добавил, что помимо того, что ваша база данных теоретически настроена, вы должны профилировать свое приложение, используя профилировщик, который отслеживает вызовы SQL.
Несмотря на ваши самые лучшие намерения, несколько неправильных звонков будут проникать в ваше приложение и часто вызывают 90% ваших проблем, связанных с производительностью.
Много полезных советов MySQL можно найти на http://www.mysqlperformanceblog.com/
SO имеет хороший здесь: Как вы интерпретируете план объяснения запросов?
Как определить медленные запущенные запросы с помощью SQL Profiler - это хороший учебник по определению медленных запросов. Это позволит сосредоточить свое внимание там, где это наиболее необходимо.
Стоит прочитать целую главу Советы по производительности в документах PostgreSQL.
Производительность SQL Server Достойный сайт для конкретной информации MSSQL.
Если вы ищете ссылки для настройки производительности SQL Server, в Интернете есть абсолютная загрузка качественных ресурсов, начиная от белых документов по внедрению определенных технологий, таких как разделение, до отличных блогов, которые подробно описывают шаг за шагом инструкции о том, как производительность настраивает серверную платформу sql.
Бесшумный штекер следует: вы можете начать исследования, просмотрев область настройки производительности моего личного блога или для каких-либо конкретных требований/выпусков SQL Server, не стесняйтесь присылать мне электронное письмо.
Я был очень доволен, когда увидел такой способ быстро увидеть, что произошло с SQL-запросом, который вы настраиваете под Oracle. Измените первый оператор SQL ниже на инструкцию SELECT и сохраните этот совет.
SELECT /*+ GATHER_PLAN_STATISTICS */ * FROM DUAL;
SELECT * FROM TABLE(dbms_xplan.display_cursor( NULL, NULL, 'RUNSTATS_LAST'))
;
PLAN_TABLE_OUTPUT
-----------------------------------------------------
SQL_ID 5z36y0tq909a8, child number 0
-------------------------------------
SELECT /*+ GATHER_PLAN_STATISTICS */ * FROM DUAL
Plan hash value: 272002086
---------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads |
---------------------------------------------------------------------------------------------
| 1 | TABLE ACCESS FULL| DUAL | 1 | 1 | 1 |00:00:00.02 | 3 | 2 |
---------------------------------------------------------------------------------------------
12 rows selected.
Где:
Если оценочный план отличается от фактического исполнения на порядок, вы знаете, что у вас есть проблемы.
Для SQL Server я в основном использую:
Вот еще одна высоко ценная книга, нейтральная к платформе:
Dan Tow SQL Tuning: создание оптимальных планов выполнения
Содержит некоторые конкретные примеры для Oracle, MS SQL и IBM DB2, но соответствующие методы должны применяться и к другим платформам.
Xaprb - это обязательный блог для MySQL DBA. Автор написал книгу о высокопроизводительной MySQL
Для счастливых немногих, работающих с Sybase SQL Anywhere, я могу только рекомендовать блог Breck Carter и его Руководство разработчика SQL Anywhere Studio 9
"Настройка производительности SQL" http://books.google.com/books?id=3H9CC54qYeEC&dq=sql+performance+tuning&printsec=frontcover&source=bn&hl=en&ei=1dDoSYmjMOrlnQfX-bSYBw&sa=X&oi=book_result&ct=result&resnum=4 охватывает большинство основных СУБД - как писать высокопроизводительные межплатформенные SQL-запросы и т.д..
Сайты Oracle
Книги Oracle
Для настройки производительности SQL Server, Itzik Ben-Gan - легенда.
Здесь вы можете найти его многочисленные подробные книги, все с его обычным стилем эмпирических измерений, чтобы доказать его случай: http://tsql.solidq.com/books/index.htm
Если вы ищете самое быстрое решение проблемы с t-sql, добавьте слово "itzik" в свой поисковый запрос google.
Itzik Ben-Gan упоминается более 600 раз здесь, в stackoverflow, но я не мог поверить, что не нашел ни одного упоминания о он здесь по этому вопросу настройки производительности.
В качестве дополнительного ресурса вы также можете найти несколько видеороликов Itzik, говорящий о производительности, связанном здесь, на youtube.
Для Microsoft SQL я бы рекомендовал книги Kalen Delaney (и др.) под названием "Inside SQL Server". Они дают хорошее представление о внутренних компонентах SQL Server, что позволяет читателям разъяснять, почему конкретные операторы могут быть быстрее других.
Внутри SQL Server 7.0
Внутри SQL Server 2000
Внутри Microsoft SQL Server 2005
Внутренние Microsoft SQL Server 2008
Также есть книга, посвященная настройке производительности SQL Server 2008:
Настройка производительности SQL Server Distilled
Мне также нравятся блоги от Paul Randal и Kimberly Tripp на SQLSkills.com. Они полны твердой рекомендации SQL:
Иногда вам нужно знать, как исправить проблему после ее идентификации. Это покажет способы замены плохо работающего курсора с помощью операции на основе набора: http://wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them
Он был специфичен для SQL Server, но многие из этих методов могут трансалировать и другие dbs.
Для Oracle Основанный на стоимости Oracle: Основы Джонатан Льюис.
Я бы начал понимать, как база данных работает на фундаментальном уровне. Как хранятся данные на диске, что делает создание индекса, как работает оптимизация плана запроса, как кэшируются планы, когда истекает срок действия кэшированных планов.
Если вы можете передать все это в память, большинство советов о настройке кажется очевидным.
Вот отличная книга для MSSQL
Для людей, работающих с Oracle, я рекомендую эту ссылку.............
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/toc.htm
Из моего опыта работы с базой данных Oracle я обнаружил, что наращиваю знания о том, как использовать SQL, как он работает и знает, что доступно (предоставленные функции, предложения, которые вы не знали, существовали или улучшались из последних версия) означает, что я трачу намного меньше времени на настройку sql.