Отправить другу/подруге по почте ссылку на эту страницуВариант этой страницы для печатиНапишите нам!Карта сайта!Помощь. Как совершить покупку…
московское время17.04.24 02:49:15
На обложку
Принципы и методика составления металлогенических и прогнозных…авторы — Шаталов Е. Т., ред.
Валери, или Письма Густава де Линара Эрнесту де Г...авторы — Крюденер В. Ю., баронесса
Легенды и были Арабского Востокаавторы — Григорьева А. Г., Гусаров В. И.
б у к и н и с т и ч е с к и й   с а й т
Новинки«Лучшие»Доставка и ОплатаМой КнигоПроводО сайте
Книжная Труба   поиск по словам из названия
Авторский каталог
Каталог издательств
Каталог серий
Моя Корзина
Только цены
Рыбалка
Наука и Техника
Математика
Физика
Радиоэлектроника. Электротехника
Инженерное дело
Химия
Геология
Экология
Биология
Зоология
Ботаника
Медицина
Промышленность
Металлургия
Горное дело
Сельское хозяйство
Транспорт
Архитектура. Строительство
Военная мысль
История
Персоны
Археология
Археография
Восток
Политика
Геополитика
Экономика
Реклама. Маркетинг
Философия
Религия
Социология
Психология. Педагогика
Законодательство. Право
Филология. Словари
Этнология
ИТ-книги
O'REILLY
Дизайнеру
Дом, семья, быт
Детям!
Здоровье
Искусство. Культурология
Синематограф
Альбомы
Литературоведение
Театр
Музыка
КнигоВедение
Литературные памятники
Современные тексты
Худ. литература
NoN Fiction
Природа
Путешествия
Эзотерика
Пурга
Спорт

/ИТ-книги/O'REILLY

Настройка SQL. Для профессионалов — Тоу Д.
Настройка SQL. Для профессионалов
Генерация оптимальных планов исполнения
Тоу Д.
год издания — 2004, кол-во страниц — 333, ISBN — 5-94723-959-0, тираж — 4000, язык — русский, тип обложки — твёрд. 7БЦ матов., масса книги — 540 гр., издательство — Питер
КНИГА СНЯТА С ПРОДАЖИ
SQL Tuning
Dan Tow
O'REILLY 2004
Пер. с англ. А. Леонтьева, Е. Шикарева
Уровень пользователя: опытный
Формат 70x100 1/16
ключевые слова — sql, oracle, db2, субд, В-дерев

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

Метод настройки SQL-запросов не опирается на случайный или итеративный перебор вариантов кода, а основан на чётких и понятных правилах, которые достаточно просты для понимания и основаны на принципах работы SQL-серверов.

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

«Заставьте это выполняться быстрее!» — такое требование можно довольно часто услышать от пользователей систем баз данных. Администраторы и разработчики проводят бесконечно долгие часы, пытаясь улучшить производительность своих приложений баз данных. А поскольку в основе любого подобного приложения лежат запросы SQL, улучшение производительности часто упрощается до задачи настройки одного или нескольких запросов, чтобы гарантировать, что они получают доступ к данным самым быстрым путём. Для настройки медленного оператора SQL вам необходимо знать ответы на три вопроса:

  • Как найти и интерпретировать план исполнения оператора SQL?
  • Как изменить SQL, чтобы получить определённый альтернативный план исполнения?
  • Как решить, какого плана исполнения должен придерживаться запрос?


Множество книг обсуждают вопрос настройки SQL Большинство из них дают прекрасные ответы на первые два вопроса, но оставляют третий, возможно, самый важный вопрос как упражнение для читателей! Поэтому многие профессионалы считают настройку операторов SQL тщетным повторением метода проб и ошибок, совершенно не представляя, как узнать, был ли достигнут оптимальный или близкий к оптимальному план исполнения.

В книге Настройка SQL Дэн Toy описывает основанный на диаграммах метод настройки операторов SQL Этот метод не является итеративным или повторяющимся, он скорее детерминистический: вы должны однажды последовать хорошо определённому процессу — и тогда в конце процесса вы точно узнаете оптимальный или близкий к оптимальному план исполнения для рассматриваемого оператора. Бы не только быстро получите оптимальный план исполнения, но за один проход также убедитесь, что этот план действительно является оптимальным. Это чрезвычайно важно, так как позволяет точно понять, когда уже можно прекратить тратить время на попытки улучшить исполнение оператора SQL и поиск улучшений другими способами, например путем изменения индексов, дизайна базы данных или приложения, использующего SQL.

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

ОГЛАВЛЕНИЕ

Об авторе11
 
Вступление12
 
Предисловие14
Цели этой книги15
Аудитория этой книги15
Структура книги16
Условные обозначения17
Комментарии и вопросы18
Благодарности19
От издательства20
 
1. Введение21
Зачем настраивать SQL?21
Кто должен настраивать SQL?23
Чем может помочь эта книга25
Бонус26
«Внешние» решения27
 
2. Основы доступа к данным29
Кэширование в базе данных30
Таблицы33
   Последовательный рост34
   Удаление самых старых данных35
   Удаление данных вне зависимости от возраста35
   Полное удаление и рост с нуля36
Индексы36
Индексы в В-деревьях36
   Стоимость индекса39
Редкие объекты базы данных40
   Таблицы с индексной организацией40
   Однотабличные кластеры41
   Многотабличные кластеры42
   Таблицы с разбиениями42
   Растровые индексы43
Пути доступа для одной таблицы43
   Полное сканирование таблицы44
   Индексный доступ к таблицам45
   Выбор между полным сканированием таблицы и индексным доступом47
Вычисление селективности50
   Селективность фильтра50
   Селективность условия на диапазоне индекса52
   Селективность для строк таблицы, полученных при помощи индекса56
   Комбинирование индексов58
Соединения59
   Типы соединений59
   Способы обработки соединений61
 
3. Просмотр и интерпретация планов выполнения66
Чтение планов выполнения в Oracle67
   Подготовка67
   Процесс, лежащий в основе отображения планов выполнения67
   Практический процесс отображения планов выполнения69
   Надежные планы выполнения70
   Ненадежные планы выполнения75
   Сложные планы выполнения76
Чтение планов выполнения в DB277
   Подготовка78
   Процесс, лежащий в основе отображения планов выполнения78
   Практический процесс отображения планов выполнения81
   Надёжные планы выполнения82
   Ненадёжные планы выполнения86
   Сложные планы выполнения87
Чтение планов выполнения в SQL Server88
   Отображение планов выполнения88
   Как интерпретировать план90
   Интерпретация плана выполнения91
   Интерпретация ненадёжных планов выполнения93
   Сложные планы выполнения93
 
4. Управление планами выполнения96
Универсальные техники управления планами96
   Использование правильного индекса97
   Запрещение использования неправильных индексов100
   Использование желаемого порядка соединения101
   Запрещение соединения в неправильном порядке102
   Выбор порядка выполнения для внешних запросов и подзапросов103
   Предоставление стоимостному оптимизатору хороших данных105
   Обман стоимостного оптимизатора плохими данными106
Управление планами в Oracle107
   Управление выбором оптимизатора в Oracle109
   Управление синтаксическими планами выполнения в Oracle112
   Управление стоимостными планами выполнения в Oracle113
Управление планами в DB2120
   Подготовка к оптимизации в DB2121
   Выбор уровня оптимизации122
   Изменение запроса123
Управление планами в SQL Server125
   Подготовка к оптимизации в SQL Server125
   Изменение запроса126
   Примеры подсказок127
   Использование FORCEPLAN130
 
5. Диаграммное изображение простых
запросов SQL
131
Зачем нужен новый метод?131
Полные диаграммы запросов133
   Информация, отображаемая в диаграммах запросов133
   Что не входит в диаграммы запросов135
   Когда диаграммы запросов помогают лучше всего137
   Абстрактная демонстрация использования диаграмм запросов138
   Создание диаграмм запросов139
   Более сложный пример142
   Сокращения147
Интерпретация диаграмм запросов149
Упрощенные диаграммы запросов151
Упражнения153
 
6. Выбор наилучшего плана выполнения157
Надёжные планы выполнения157
Обычный эвристический порядок соединения159
Простые примеры160
   Порядок 8-стороннего соединения161
   Окончательное решение для 8-стороннего соединения163
   Сложное 17-стороннее соединение164
Особый случай168
   Решение для Oracle168
   Решение специфичной проблемы для других серверов170
Сложный пример171
   Специальные правила для особых случаев175
   Безопасные декартовы произведения176
   Детальные коэффициенты фильтрации, близкие к 1,0181
   Коэффициенты соединения, меньшие 1,0182
   Близкие коэффициенты фильтрации191
   Случаи, когда нужно выбрать соединения хэшированием195
Упражнение199
 
7. Диаграммное изображение и настройка
сложных SQL-запросов
201
Необычные диаграммы соединений202
   Графы циклических соединений202
   Несвязные диаграммы запросов210
   Диаграммы запросов с несколькими корневыми узлами212
   Соединения без первичных ключей217
   Соединения вида «один к одному»218
   Внешние соединения222
Запросы с подзапросами228
   Изображение запросов с подзапросами на диаграммах229
   Настройка запросов с подзапросами238
Запросы с представлениями240
   Диаграммное изображение запросов, использующих представления241
   Настройка запросов с представлениями244
Запросы с операциями над множествами250
Упражнение251
 
8. Почему метод диаграмм работает253
Аргументы в пользу вложенных циклов253
Выбор ведущей таблицы255
Выбор следующей таблицы для соединения258
   Объяснение различной стоимости считывания строки260
   Объяснение преимуществ от поздних соединений260
   Когда следует выбирать ранние соединения с узлами наверху260
Резюме262
 
9. Особые случаи263
Внешние соединения263
Шаги порядка оптимизации нормального внешнего соединения265
Пример266
Совмещённые соединения и фильтрующие индексы268
Отсутствующие индексы271
Соединения, не прошедшие фильтрацию273
Неразрешимые проблемы273
 
10. Решения сложных проблем276
Когда очень быстро — это ещё недостаточно быстро276
   Как избежать повторяющихся запросов при помощи кэширования277
   Объединённые запросы279
   Слияние повторяющихся запросов с предыдущим запросом279
Запросы, которые возвращают слишком много данных281
   Объёмные оперативные запросы281
   Объёмные пакетные отчёты284
   Агрегационные данные многих детальных записей290
   Промежуточные процессы обрабатывают слишком много строк291
Настроенные запросы, которые медленно возвращают несколько строк293
   Почему иногда запросы считывают много строк, а возвращают
лишь несколько
293
   Оптимизация запросов с распределёнными фильтрами294
 
Приложение А. Решения задач297
Решения для задач из главы 5297
   Упражнение 1297
   Упражнение 2298
   Упражнение 3298
   Упражнение 4299
   Упражнение 5300
   Упражнение 6300
Решение для задачи из главы 6301
Решение для задачи из главы 7307
 
Приложение Б. Полный и непрерывный процесс310
Сокращение запроса до диаграммы запроса310
Создание скелета запроса310
Создание упрощённой диаграммы запроса312
Создание полной диаграммы запроса312
Решение диаграммы запроса314
Проверка планов выполнения315
Получение плана выполнения в Oracle315
Получение плана выполнения в DB2316
Получение плана выполнения в SQL Server318
Изменение базы данных для получения лучшего плана319
Изменение SQL-кода для получения хорошего плана319
Изменение приложения320
Взгляд в будущее320
 
Глоссарий322
 
Алфавитный указатель331

Книги на ту же тему

  1. Проектирование структур баз данных: В 2-х кн. (комплект из 2 книг), Тиори Т., Фрай Д., 1985

Напишите нам!© 1913—2013
КнигоПровод.Ru
Рейтинг@Mail.ru работаем на движке KINETIX :)
elapsed time 0.023 secработаем на движке KINETIX :)