2011-01-03 3 views
0

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

Техника:

SELECT tab1.col1 
FROM tab1, tab2 
WHERE tab1.col1 = tab2.col2 
AND tab2.col3 = 'X' 
AND tab1.col4 = 'Y'; 

В приведенном выше запросе

  1. Мне нужно создать две таблицы в качестве ссылки таблицы для тех, которые использовались выше говорят tab3 для tab1 и tab4 для tab2.
  2. Вставьте значения PK для вкладок tab1 и tab2 соответственно в tab3 и tab4.
  3. Добавьте столбец как на tab3, так и на tab4, скажите 'condition1' и обновите его значениями PK записей, извлеченных из указанного выше запроса.
  4. Используйте tab3 и tab4 в запросах с проверкой на столбце «условие1» IS NOT NULL.
  5. Записать триггер, чтобы обновить этот столбец на любом DML в исходных таблицах.

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

Я считаю, что это дублирование данных и огромная нагрузка на базу данных. И это не будет способствовать повышению производительности.

Будет здорово, если вы сможете помочь мне выйти из дилеммы реализации этого.

Спасибо заранее, САВИТА

+3

Я думаю, что вы - ваши коллеги, являются настоящими новичками в области разработки баз данных и нуждаются в серьезной помощи для консультанта Oracle. Какова конечная цель этой базы данных и сколько строк в день вы добавите? Я не намерен быть злым, просто грубо честным. Иногда лучшая помощь, которую мы можем предоставить на SO, - это сказать вам, что вам нужна дополнительная помощь. –

ответ

2

Вы убедились, что вы используете индексы правильно?

+0

Я еще не думал об индексах! Я должен реализовать вышеупомянутую технику, которую я чувствую, закручивая базу данных. – Savitha

+0

Если вы не отвечаете на вопрос, но задаете вопрос, это комментарий. –

+0

Должны? Я думаю, что ваши инстинкты верны, Савита, вы не должны реализовывать то, что предложили ваши коллеги. Прочитайте индексы и хорошую архитектуру базы данных, и вы сможете показать им лучший способ. – ScottCher

1

Такая настройка производительности выглядит плохой идеей. Это выглядит глупым способом воссоздания индексной системы. Я бы посоветовал это сделать.