|
Навигация
|
Главная » Sql Практическое использование средств FGACИсточник: ln Том, Мы собираемся использовать возможности создания виртуальной приватной базы данных (VPD) сервера Oracle для уже работающей производственной системы оперативной обработки транзакций (ООТ). Идея в том, чтобы возможности системы могли одновременно использовать примерно 40-50 разных компаний. В каждую таблицу приложения добавляется новый столбец, например, COMP_ID.Теперь вопрос: (я знаю о твоем мнении в отношении использования индексов на основе битовых карт в системах ООТ) Не стоит ли использовать индексы на основе битовых карт по столбцам COMP_ID (VPD), просто потому, что количество различных значений в них весьма невелико? Ответ Тома Кайта НЕТ! Индексы на основе битовых карт никогда, ни при каких обстоятельствах не подходят для систем ООТ. Столбец COMP_ID станет атрибутом, который будет добавлен к существующим индексам -- сам столбец COMP_ID индексировать не нужно. Пусть имеется таблица emp: create table emp ( empno number, ename varchar2(30), job varchar2(10) );И выполнены следующие операторы: alter table emp add constraint emp_pk primary key(empno); create index emp_ename_idx on emp( ename );Теперь, вы добавляете столбец comp_id и выполняете операторы: alter table emp add constraint emp_pk primary key(EMPNO,COMP_ID); create index emp_ename_idx on emp(ename, COMP_ID);поскольку запрос, который имел вид: select * from emp where empno = :x;теперь будет эквивалентен: select * from emp where empno = :x and comp_id = sys_context(...);Запрос: select * from emp where ename = :xбудет изменен аналогично... Вопрос читателя от 26 мая 2003 годаНет ли смысла фрагментировать таблицу по столбцу COMP_ID?Ответ Тома КайтаКонечно, можно и фрагментировать. Особенно если количество разных значений comp_id фиксировано. Будет сложнее (потребует больше действий от администратора), если придется добавлять фрагменты на ходу.А как насчет сжатия?Не будет ли лучше создать индекс со сжатием, например, по столбцам comp_id, empno и сжать по столбцу 1?Ответ Тома КайтаДа, это сработает...Условие, генерируемое при добавлении FGACПеречитал на выходных главу, посвященную средствам тщательного контроля доступа, в твоей книге...Вопросы:
Ответ Тома Кайта1) См. это обсуждение2) При анализе оператора. Вызовы dbms_output в функциях FGAC выполняются в другом сеансе - вот почему вы никогда не увидите их результаты. Терабайт - не предел. Восстановление данных сверхбольшого объема на примере испорченной базы Microsoft SQL Server. Oracle Critical Patch Update - октябрь 2012. SQL Server: Базы данных и индексы. Строим Nested Set дерево без рекурсии. О новой версии MS SQL Server 2012. Главная » Sql |
© 2024 Team.Furia.Ru.
Частичное копирование материалов разрешено. |