При создании и настройке запроса в Oracle скорость, как правило, является основной задачей для разработчика. Однако при настройке определенного запроса я недавно попробовал FIRST_ROWS и NO_CPU_COSTING намеки, и был составлен план выполнения, который на 80% быстрее, чем предыдущий план во время исполнения, но при более высокой цене на 300%. В плане выполнения очень мало ввода-вывода, и кажется, что все дополнительные затраты связаны с внешним соединением вложенного цикла между двумя представлениями.Стоимость плана исполнения Oracle по сравнению с скоростью
Этот запрос разбит на страницы, поэтому мне понадобятся только первые несколько строк. Отсутствие значительного ввода-вывода приводит меня к мысли, что этот запрос не будет зависящим от кэша, и на первый взгляд кажется, что это путь. Однако, поскольку я никогда не видел увеличения запроса в скорости и, так дорого стоить в то же время, я не уверен, какими могут быть недостатки в использовании этого запроса. Есть ли какие-нибудь?
два намека, которые вы упомянули, очень ориентированы на вложенный цикл - NL полезна для извлечения первых N строк, и это довольно простой подход для очень дешевого процессора. альтернативой является сортировка слияния, например, в основном используется для объединения двух больших таблиц. это дорогостоящий процессор, потому что он требует своего рода. хеш-соединение также дорогостоящее CPU, потому что оно требует применения хэш-функции. я не знаю конкретно о вашем случае, но большинство систем связаны с диском, а не с ЦП, поэтому уменьшение количества считываемых дисков приводит к снижению стоимости. – haki
На самом деле, я считаю, что точность важнее скорости. –
Я работал над системами с более чем 500 000 строк в таблице. Я думаю, что скорость является обязательной или может повредить всю систему. –