Рефакторинг SQL-приложений

Стефан Фаро, Паскаль Лерми

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

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

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

Издательство: Символ-Плюс, 2009 г.

ISBN 978-5-93286-145-5, 978-0-596-51497-6

Количество страниц: 336.

Содержание книги «Рефакторинг SQL-приложений»:

  • 9 Об авторах
  • 10 Предисловие
  • 20 1. Оценка
    • 21 Простой пример
    • 25 Настройка SQL, традиционный способ
    • 28 Припудривание кода
    • 30 Настройка SQL заново
    • 30 Рефакторинг, первая точка зрения
    • 35 Рефакторинг, вторая точка зрения
    • 37 Сравнение и комментарии
    • 40 Выбор среди различных подходов
    • 42 Оценка возможных выигрышей
    • 49 Выяснение, что делает база данных
    • 49 Запрос динамических представлений
    • 54 Добавление операторов в файл трассировки
    • 56 Использование файлов трассировки
    • 58 Анализ собранного материала
  • 61 2. Проверка работоспособности
    • 62 Статистика и проблемы с данными
    • 62 Доступная статистика
    • 67 Ловушки для оптимизатора
    • 67 Экстремальные значения
    • 69 Временные таблицы
    • 69 Обзор индексирования
    • 71 Краткий обзор типа индексации
    • 73 Детальное исследование
    • 79 Индексы, которые нарушают правила
    • 79 Индексы на основе битовых карт
    • 80 Кластерные индексы
    • 81 Индексы по выражениям
    • 81 Синтаксический разбор и связующие переменные
    • 82 Как определить проблемы синтаксического разбора
    • 84 Оценка потерь производительности из-за синтаксического разбора
    • 88 Разрешение проблем синтаксического анализа
    • 90 Что если одно значение должно быть привязано несколько раз?
    • 91 Разрешение проблем синтаксического анализа для ленивых
    • 92 Правильный подход к разрешению проблем синтаксического анализа
    • 94 Обработка списков в подготовленных операторах
    • 95 Передача списка как одной переменной
    • 98 Пакетная обработка списков
    • 99 Использование временной таблицы
    • 100 Групповые операции
    • 102 Управление транзакциями
  • 105 3. Пользовательские функции и представления
    • 106 Пользовательские функции
    • 107 Усовершенствование чисто вычислительных функций
    • 110 Дальнейшее усовершенствование функций
    • 118 Усовершенствование функций поиска
    • 119 Пример 1: календарная функция
    • 127 Пример 2: функция конвертирования валют
    • 135 Усовершенствование функций против переписывания операторов
    • 136 Представления
    • 136 Для чего нужны представления
    • 137 Сравнение производительности со сложными представлениями и без них
    • 144 Рефакторинг представлений
  • 148 4. Концепция тестирования
    • 149 Генерирование тестовых данных
    • 150 Размножение строк
    • 151 Использование функций генерирования случайных значений
    • 152 SQL Server и функции генерирования случайных значений
    • 156 Подгонка под существующие распределения
    • 160 Генерирование большого числа строк
    • 164 Целостность на уровне ссылок
    • 165 Генерирование случайного текста
    • 167 Сравнение альтернативных версий
    • 167 Блочное тестирование
    • 168 Приближенное сравнение
    • 169 Сравнение таблиц и результатов
    • 169 Что сравнивать
    • 170 Примитивные способы сравнения
    • 172 Сравнение SQL, версия из учебника
    • 174 Сравнение SQL, версия получше
    • 175 Сравнение контрольных сумм в SQL
    • 182 Ограничения сравнения
  • 183 5. Рефакторинг операторов
    • 184 Планы исполнения и директивы оптимизатора
    • 190 Анализ медленного запроса
    • 190 Идентификация базового запроса
    • 192 Приведение в порядок фразы from
    • 195 Рефакторинг базового запроса
    • 196 Анализ составных частей
    • 196 Устранение повторяющихся шаблонов
    • 203 Игры с подзапросами
    • 203 Подзапросы в списке select
    • 206 Подзапросы во фразе from
    • 206 Подзапросы во фразе where
    • 209 Ранняя активизация фильтров
    • 211 Упрощение условий
    • 214 Другие направления оптимизации
    • 214 Упрощение агрегатов
    • 214 Использование фразы with
    • 215 Комбинирование операторов объединения
    • 216 Перестроение исходного запроса
    • 216 Вложенные циклы
    • 217 Соединение слиянием и хеш-соединение
  • 219 6. Рефакторинг задач
    • 220 SQL-мышление
    • 221 Использование SQL там, где SQL работает лучше
    • 222 Рассчитывайте на успех
    • 225 Реструктуризация кода
    • 226 Объединение операторов
    • 226 Введение управляющих структур в SQL
    • 227 Использование агрегатов
    • 228 Использование функции coalesce() вместо if is null
    • 229 Использование исключений
    • 234 Извлечение всех нужных данных за один прием
    • 235 Изменение логики
    • 236 Избавление от функции count()
    • 244 Избегайте излишеств
    • 245 Избавляйтесь от циклов
    • 248 Причины использования циклов
    • 250 Анализ циклов
    • 251 Сомнительные циклы
  • 255 7. Рефакторинг потоков и баз данных
    • 256 Реорганизация обработки
    • 257 Борьба за ресурсы
    • 258 Время обслуживания и интенсивность входного потока
    • 259 Усиление параллелизма
    • 261 Размножение поставщиков услуг на уровне приложения
    • 269 Укорачивание критических разделов
    • 270 Изолирование опасных зон
    • 271 Работа с несколькими очередями
    • 278 Параллелизм вашей программы и СУБД
    • 281 Потрясая основы
    • 283 Сортировка строк
    • 286 Разбиение таблиц
    • 288 Изменение столбцов
    • 288 Изменение содержимого
    • 289 Разбиение столбцов
    • 290 Добавление столбцов
    • 291 Материализация представлений
  • 294 8. Как это работает: практика рефакторинга
    • 294 Можете ли вы взглянуть на базу данных?
    • 296 «Мертвые» запросы
    • 298 Все эти быстрые запросы
    • 300 Не бывает явно «плохих» запросов
    • 301 Пора заканчивать
  • 302 A. Сценарии и примеры программ
  • 312 B. Инструменты
    • 312 Программы mklipsum и lipsum
    • 312 Как собрать программы mklipsum и lipsum
    • 312 Как использовать программы mklipsum и lipsum
    • 315 Roughbench
    • 315 Как собрать программу Roughbench
    • 315 Как использовать программу Roughbench
    • 315 Файл roughbench .properties
    • 316 Указание параметров
    • 317 Генерирование переменных
    • 317 Генерирование целых чисел или чисел с плавающей запятой
    • 317 Генерирование дат
    • 318 Вывод
  • 320 Алфавитный указатель

Инструкция как скачать книгу Стефан Фаро, Паскаль Лерми: Рефакторинг SQL-приложений в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Рефакторинг SQL-приложений
Рейтинг книги:
0 голосов
125

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: