Перекомпиляция процедур и триггеров (постановка)

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
 
(не показана 1 промежуточная версия 1 участника)
Строка 1: Строка 1:
Interbase компилирует процедуры и триггеры в двоичное представление и в таком виде хранит в базе данных. Планы запросов, входящих в процедуры и/или триггеры, не меняются между выполнениями, в том время как статистика индексов может существенно измениться. Предлагается добавить в Гедымин возможность перекомпиляции процедур и триггеров на существующих базах данных.
+
Предлагается добавить в Гедымин возможность перекомпиляции процедур и триггеров на существующих базах данных.
  
 
# Сделать три процедуры для обновления статистики индексов, рекомпиляции триггеров и хранимых процедур, с именами UpdateIndicesStat, RecompileTriggers и RecompileProcedures, соответственно. На вход каждой процедуры передается ссылка на компонент типа [[TIBDatabase]] -- текущее подключение к базе данных.
 
# Сделать три процедуры для обновления статистики индексов, рекомпиляции триггеров и хранимых процедур, с именами UpdateIndicesStat, RecompileTriggers и RecompileProcedures, соответственно. На вход каждой процедуры передается ссылка на компонент типа [[TIBDatabase]] -- текущее подключение к базе данных.
 
# Поместить вышеуказанные процедуры в отдельный юнит с именем gdUpdateIndiceStat.pas, расположенный в папке Common проекта [[Гедымин]]. Данный юнит не должен подключать никаких других юнитов за исключением стандартных библиотек Delphi и компонентов IBX. Информация о структуре БД должна получаться запросами из RDB$ таблиц.
 
# Поместить вышеуказанные процедуры в отдельный юнит с именем gdUpdateIndiceStat.pas, расположенный в папке Common проекта [[Гедымин]]. Данный юнит не должен подключать никаких других юнитов за исключением стандартных библиотек Delphi и компонентов IBX. Информация о структуре БД должна получаться запросами из RDB$ таблиц.
# Проверить, что процедуры работы с триггерами и процедурами берут наименования мета-объектов в двойные кавычки. Убедиться что все правильно работает, добавив в базу данных хотя бы по одному триггеру и процедуре с пробелом в имени и с именем, содержащим символы разного регистра, и выполнив процедуры перекомпиляции.
+
# Проверить:
 +
## что процедуры работы с триггерами и процедурами берут наименования мета-объектов в двойные кавычки. Убедиться что все правильно работает, добавив в базу данных хотя бы по одному триггеру и процедуре с пробелом в имени и с именем, содержащим символы разного регистра, и выполнив процедуры перекомпиляции.
 +
## что после перекомпиляции триггера не меняется его позиция и состояние (активен, не активен).
 +
## что после перекомпиляции процедуры не меняется порядок входящих и исходящих параметров, а также их написание.
 
# Оставить только один пункт меню "Обновление статистики индексов" в главном окне программы. В нем сделать вызов трех процедур: обновление статистики индексов, перекомпиляция процедур и триггеров (именно в таком порядке). Убедиться, что при выполнении действия из главной формы проверяется количество подключенных пользователей к БД.
 
# Оставить только один пункт меню "Обновление статистики индексов" в главном окне программы. В нем сделать вызов трех процедур: обновление статистики индексов, перекомпиляция процедур и триггеров (именно в таком порядке). Убедиться, что при выполнении действия из главной формы проверяется количество подключенных пользователей к БД.
# В диалоговое окно восстановление базы данных из архива добавить чек-бокс "Перекомпилировать процедуры" (там как раз есть одно свободное место). По умолчанию он должна быть включен. По этому чек-боксу вызывать процедуры перекомпиляции процедур и триггеров после восстановления БД из архива, в самом конце, после перестроения интервальных деревьев. После добавления чек-бокса проверить таб-ордер в диалоговом окне!
+
# В диалоговое окно восстановление базы данных из архива добавить чек-бокс "Перекомпилировать процедуры" (там как раз есть одно свободное место). По умолчанию он должен быть включен. По этому чек-боксу вызывать процедуры перекомпиляции процедур и триггеров после восстановления БД из архива, в самом конце, после перестроения интервальных деревьев. После добавления чек-бокса проверить таб-ордер в диалоговом окне!
  
 
Если получится, сделать перекомпиляцию представлений. Тогда порядок должен быть такой: индексы, представления, процедуры, триггеры.
 
Если получится, сделать перекомпиляцию представлений. Тогда порядок должен быть такой: индексы, представления, процедуры, триггеры.
  
[[Category:Постановка]]
+
[[Category:Постановка-Сделано]]

Текущая версия на 18:51, 10 апреля 2011

Предлагается добавить в Гедымин возможность перекомпиляции процедур и триггеров на существующих базах данных.

  1. Сделать три процедуры для обновления статистики индексов, рекомпиляции триггеров и хранимых процедур, с именами UpdateIndicesStat, RecompileTriggers и RecompileProcedures, соответственно. На вход каждой процедуры передается ссылка на компонент типа TIBDatabase -- текущее подключение к базе данных.
  2. Поместить вышеуказанные процедуры в отдельный юнит с именем gdUpdateIndiceStat.pas, расположенный в папке Common проекта Гедымин. Данный юнит не должен подключать никаких других юнитов за исключением стандартных библиотек Delphi и компонентов IBX. Информация о структуре БД должна получаться запросами из RDB$ таблиц.
  3. Проверить:
    1. что процедуры работы с триггерами и процедурами берут наименования мета-объектов в двойные кавычки. Убедиться что все правильно работает, добавив в базу данных хотя бы по одному триггеру и процедуре с пробелом в имени и с именем, содержащим символы разного регистра, и выполнив процедуры перекомпиляции.
    2. что после перекомпиляции триггера не меняется его позиция и состояние (активен, не активен).
    3. что после перекомпиляции процедуры не меняется порядок входящих и исходящих параметров, а также их написание.
  4. Оставить только один пункт меню "Обновление статистики индексов" в главном окне программы. В нем сделать вызов трех процедур: обновление статистики индексов, перекомпиляция процедур и триггеров (именно в таком порядке). Убедиться, что при выполнении действия из главной формы проверяется количество подключенных пользователей к БД.
  5. В диалоговое окно восстановление базы данных из архива добавить чек-бокс "Перекомпилировать процедуры" (там как раз есть одно свободное место). По умолчанию он должен быть включен. По этому чек-боксу вызывать процедуры перекомпиляции процедур и триггеров после восстановления БД из архива, в самом конце, после перестроения интервальных деревьев. После добавления чек-бокса проверить таб-ордер в диалоговом окне!

Если получится, сделать перекомпиляцию представлений. Тогда порядок должен быть такой: индексы, представления, процедуры, триггеры.

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты