Имеет ли смысл разбивать запрос к большим таблицам на несколько параллельных запросов?

OracleMiracle
Дата: 23.09.2015 18:04:18
Всем привет!

Пишу про Оракл, но на деле применимо к любой базе.

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

Может ли для уменьшения времени выполнения запросов нам помочь простой трюк: разбиение таблицы на условные под-таблицы и их отдельное опрашивание в параллельных запросах?

Другими словами, если у нас есть поле-индекс id и таблица в 3тыс строк, то будут ли такие запросы выполняться быстрее?

select ... from ... where id < 1000
select ... from ... where id < 2000 and id>=1000
select ... from ... where id < 3000 and id>2=000

Зависит ли это от типа запроса, от применяемых в нем функций? Какая степень "параллельности" допускается, как это понять?

PS
И отдельный вопрос вдогонку: нет ли документации где описан стандартное время выполнения sql запроса в o-нотации, например: поиск значения в индексированной колонке - log(n), full fetch - n etc ?
dbms_photoshop
Дата: 23.09.2015 18:24:30
OracleMiracle,

Про секционирование что-то слышал?

PS. Для о-нотации полезно иметь представление про "стуктуры данных и алгоритмы".
С этими знаниями несложно догадаться про зависимость от числа элементов, зная что индекс - это b*tree дерево и прочее.
ArtNick
Дата: 23.09.2015 23:55:15
OracleMiracle
Другими словами, если у нас есть поле-индекс id и таблица в 3тыс строк, то будут ли такие запросы выполняться быстрее?

Считай что твоя таблица пустая
OracleMiracle
Дата: 24.09.2015 12:07:38
ArtNick,

Я не говорю что там реально 3тыс строк :) Их десятки миллионов. Это общий вопрос - помогает или нет.
Elic
Дата: 24.09.2015 12:34:05
OracleMiracle
Это общий вопрос - помогает или нет.
Одним пчелиный яд помогает, других - убивает.
Perl'ун старый
Дата: 24.09.2015 12:46:41
OracleMiracle,

все записано. не отвертишься.

Чем растекаться мыслью, почитай:

Oracle
http://docs.oracle.com/cd/E11882_01/server.112/e25523/parallel002.htm
ArtNick
Дата: 24.09.2015 13:27:36
OracleMiracle
ArtNick,
Это общий вопрос - помогает или нет.

Судя по количеству ответов этот подход не был опробовал присутствующими :)
ArtNick
Дата: 24.09.2015 13:49:11
OracleMiracle,
Стесняюсь спросить, а Вы оценивали свою идею с точки зрения блочного хранения данных?
Вы анализировали на своих данных статистику выполнения вариантов запросов?