У меня простой вопрос. Предположим, что следующий sql возвращает более миллиона записей:

Select * from Table

Если мне нужно работать только со 100 записями, приведет ли ограничение строк к значительному увеличению производительности и почему?

Пример Oracle sql:

Select * from Table where rownum<=100
0
Master Yi 14 Мар 2018 в 14:19

2 ответа

Лучший ответ

Если вы читаете все строки, ограничение количества строк будет более эффективным.

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

Если ваша «таблица» действительно является «представлением», тогда два запроса могут оптимизироваться по-разному.

3
Gordon Linoff 14 Мар 2018 в 11:20

Нет. Лучший способ найти ответ - быстро составить план объяснения. И посмотрите относительную стоимость исполнения. Это даст вам быстрый обзор. Возвращаемая строка является отображаемой частью, но выборка строки выполняется по условию. Так что желательно, чтобы он не был медленнее и подтвердил то, что я говорю, сгенерируйте план объяснения, он даст четкую картину

0
Gaurav Kumar Sinha 16 Мар 2018 в 06:04