+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 91.78 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

Практическое использование средств FGAC

24.03.2010 11:16

Том,

Мы собираемся использовать возможности создания виртуальной приватной базы данных (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. Нет ли способа получить либо условие, генерируемое функциями защиты, либо полный текст SQL-оператора?
  2. Когда реально выполняются функции защиты?

Я попытался сделать следующее:

  • Добавил вызовы dbms_output в функции: ничего выдано не было, так что момент вызова определить не удалось.
  • Представления v$sqlarea/v$sqltext содержат только SQL-операторы виртальной приватной базы данных ("select * from emp")
  • Утилита tkprof также показывает только "select * from emp"

Как получить реальный текст оператора - я привык видеть при программировании все операторы SQL.

Ответ Тома Кайта

1) См. это обсуждение

2) При анализе оператора. Вызовы dbms_output в функциях FGAC выполняются в другом сеансе - вот почему вы никогда не увидите их результаты.

Ссылки по теме

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года