Создание представления и производительности в базе данных., - PullRequest
0 голосов
/ 28 января 2010

ЕСЛИ создать тысячи просмотров, это мешает производительности базы данных. Я имею в виду, есть ли проблема с созданием тысяч представлений в Oracle. Пожалуйста, объясните, как я новичок в этой области ... Я использую оракула ...

Ответы [ 4 ]

2 голосов
/ 28 января 2010

Простое существование этих представлений вообще не должно вредить производительности. Однако, как только эти представления начнут использоваться, возможно, что это окажет некоторое негативное влияние на производительность. Oracle пытается «запомнить» план для каждого оператора, который видит, но сравнивает операторы путем сравнения исходного кода (SQL). Ваши тысячи представлений будут именоваться по-разному, поскольку у вас не может быть нескольких представлений с одним и тем же именем, и поэтому при каждом использовании одного из них Oracle придется выполнять полный анализ SQL, даже если это что-то базовый как

SELECT * FROM VIEW_1;

и

SELECT * FROM VIEW_2;

Все эти повторные разборы, безусловно, займут некоторое время.

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

  1. Что здесь должно быть достигнуто?
  2. Зачем нужны тысячи разных видов?
  3. Есть ли другой способ выполнить то, что нужно сделать, не создавая все эти представления?

Я не знаю ответов на вопросы 1 и 2, но я вполне уверен, что ответ на вопрос № 3 - «Да».

Удачи.

0 голосов
/ 28 января 2010

Просмотр не должен влиять на производительность, если оптимизатор достаточно умен. Я помню случаи с другими механизмами БД, когда представления наносят ущерб производительности. Как и во многих случаях производительности - я предлагаю измерить ваш конкретный случай.

0 голосов
/ 28 января 2010

Представления Oracle являются инкапсуляцией сложный запрос и должен использоваться с уход. Вот ключевые факты помните:

Представления не предназначены для улучшения SQL спектакль. Когда вам нужно инкапсулируйте SQL, вы должны разместить его внутри хранимой процедуры, а не использовать вид. Виды скрывают сложность базового запроса, делая его проще для неопытных программистов и конечные пользователи для формулирования запросов. Представления могут быть использованы для настройки запросов с подсказки, при условии, что вид всегда используется в правильном контексте.

source: защита от проблем с производительностью при использовании подсказок и представлений Oracle

0 голосов
/ 28 января 2010

Представление так же тяжело для запуска, как и выбор, который его создает, но баланс нагрузки Oracle и одиночный выбор не могут повредить БД. Если у вас есть тысячи одновременных выборов, то у вас могут быть проблемы. Количество просмотров не важно, но насколько они тяжелы и насколько вы их используете.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...