2009г.
Количество страниц:336
Когда поднимается вопрос рефакторинга кода, специалист может быть уверен, что либо возникла серьезная проблема, либо предполагается, что она проявится в ближайшее время. Как правило, при этом известно, что следует улучшить в плане функциональности, но прежде необходимо понять природу проблемы.
В книге "Рефакторинг SQL-приложений" делается попытка дать реалистичный и честный обзор методов усовершенствования приложений SQL и определить рациональную концепцию для тактических маневров. Часто рефакторинг напоминает безумный поиск быстрых побед и эффектных усовершенствований, которые можно вписать в бюджет и сохранить голову на плечах. Но разумное и систематическое применение правильных принципов может привести к впечатляющим результатам. Эта книга поможет выработать правильную тактику и оценить перспективы различных решений.
Книга "Рефакторинг SQL-приложений" предназначена для профессионалов в области информационных технологий, разработчиков, менеджеров проектов, служб поддержки, администраторов баз данных и специалистов по настройке, которым приходится принимать участие в операциях по спасению приложений со значительным объемом кода управления базами данных.
Об авторах
Стефан Фаро занимается реляционными базами данных и языком SQL с 1983 года. Он присоединился к Oracle France в самом начале существования этой организации (после недолгого периода работы в IBM и преподавания в Университете Оттавы) и вскоре сосредоточился на вопросах производительности и настройки. Покинув Oracle в 1988 году, он некоторое время занимался исследованием операций, но через год снова вернулся к реляционным базам данных и с тех пор занимается консультированием в этой области. В 1998 году основал компанию RoughSea Ltd.
Паскаль Лерми последние 12 лет работает специалистом по средам оперативной обработки транзакций и разработки реляционных баз данных Oracle, а последние пять лет - и разработки баз данных Microsoft SQL Server.
Оглавление
Об авторах
Предисловие
Почему нужно прибегать к рефакторингу?
Рефакторинг доступа к базе данных
Как устроена эта книга
Аудитория
Допущения, сделанные в этой книге
Используемые в книге обозначения
Использование примеров кода
Комментарии и вопросы
Благодарности
Глава 1. Оценка
Простой пример
Настройка SQL, традиционный способ
Припудривание кода
Настройка SQL заново
Рефакторинг, первая точка зрения
Рефакторинг, вторая точка зрения
Сравнение и комментарии
Выбор среди различных подходов
Оценка возможных выигрышей
Выяснение, что делает база данных
Анализ собранного материала
Глава 2. Проверка работоспособности
Статистика и проблемы с данными
Доступная статистика
Ловушки для оптимизатора
Обзор индексирования
Краткий обзор типа индексации
Детальное исследование
Индексы, которые нарушают правила
Синтаксический разбор и связующие переменные
Как определить проблемы синтаксического разбора
Оценка потерь производительности из-за синтаксического разбора
Разрешение проблем синтаксического анализа
Что, если одно значение должно быть привязано несколько раз?
Разрешение проблем синтаксического анализа для ленивых
Правильный подход к разрешению проблем синтаксического анализа
Обработка списков в подготовленных операторах
Групповые операции
Управление транзакциями
Глава 3. Пользовательские функции и представления
Пользовательские функции
Усовершенствование чисто вычислительных функций
Дальнейшее усовершенствование функций
Усовершенствование функций поиска
Усовершенствование функций против переписывания операторов
Представления
Для чего нужны представления
Сравнение производительности со сложными представлениями и без них
Рефакторинг представлений
Глава 4. Концепция тестирования
Генерирование тестовых данных
Размножение строк
Использование функций генерирования случайных значений
SQL server и функции генерирования случайных значений
Подгонка под существующие распределения
Генерирование большого числа строк
Целостность на уровне ссылок
Генерирование случайного текста
Сравнение альтернативных версий
Блочное тестирование
Приближенное сравнение
Сравнение таблиц и результатов
Ограничения сравнения
Глава 5. Рефакторинг операторов
Планы исполнения и директивы оптимизатора
Анализ медленного запроса
Идентификация базового запроса
Приведение в порядок фразы from
Рефакторинг базового запроса
Анализ составных частей
Устранение повторяющихся шаблонов
Игры с подзапросами
Ранняя активизация фильтров
Упрощение условий
Другие направления оптимизации
Перестроение исходного запроса
Вложенные циклы
Соединение слиянием и хеш-соединение
Глава 6. Рефакторинг задач
SQL-мышление
Использование SQL там, где SQL работает лучше
Рассчитывайте на успех
Реструктуризация кода
Объединение операторов
Введение управляющих структур в SQL
Избавление от функции count()
Избегайте излишеств
Избавляйтесь от циклов
Глава 7. Рефакторинг потоков и баз данных
Реорганизация обработки
Борьба за ресурсы
Изолирование опасных зон
Параллелизм вашей программы и СУБД
Потрясая основы
Сортировка строк
Разбиение таблиц
Изменение столбцов
Глава 8. Как это работает: практика рефакторинга
Можете ли вы взглянуть на базу данных?
"Мертвые" запросы
Все эти быстрые запросы
Не бывает явно "плохих" запросов
Пора заканчивать
Приложение A. Сценарии и примеры программ
Приложение B. Инструменты
Программы mklipsum и lipsum
Как собрать программы mklipsum и lipsum
Как использовать программы mklipsum и lipsum
Roughbench
Как собрать программу Roughbench
Как использовать программу Roughbench |