Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Имеет ли смысл разбивать запрос к большим таблицам на несколько параллельных запросов?  [new]
OracleMiracle
Guest
Всем привет!

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

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

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

Другими словами, если у нас есть поле-индекс 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 ?
23 сен 15, 18:04    [18186512]     Ответить | Цитировать Сообщить модератору
 Re: Имеет ли смысл разбивать запрос к большим таблицам на несколько параллельных запросов?  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
OracleMiracle,

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

PS. Для о-нотации полезно иметь представление про "стуктуры данных и алгоритмы".
С этими знаниями несложно догадаться про зависимость от числа элементов, зная что индекс - это b*tree дерево и прочее.
23 сен 15, 18:24    [18186628]     Ответить | Цитировать Сообщить модератору
 Re: Имеет ли смысл разбивать запрос к большим таблицам на несколько параллельных запросов?  [new]
ArtNick
Member

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

Считай что твоя таблица пустая
23 сен 15, 23:55    [18187866]     Ответить | Цитировать Сообщить модератору
 Re: Имеет ли смысл разбивать запрос к большим таблицам на несколько параллельных запросов?  [new]
OracleMiracle
Guest
ArtNick,

Я не говорю что там реально 3тыс строк :) Их десятки миллионов. Это общий вопрос - помогает или нет.
24 сен 15, 12:07    [18189149]     Ответить | Цитировать Сообщить модератору
 Re: Имеет ли смысл разбивать запрос к большим таблицам на несколько параллельных запросов?  [new]
Elic
Member

Откуда:
Сообщений: 29989
OracleMiracle
Это общий вопрос - помогает или нет.
Одним пчелиный яд помогает, других - убивает.
24 сен 15, 12:34    [18189304]     Ответить | Цитировать Сообщить модератору
 Re: Имеет ли смысл разбивать запрос к большим таблицам на несколько параллельных запросов?  [new]
Perl'ун старый
Guest
OracleMiracle,

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

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

Oracle
http://docs.oracle.com/cd/E11882_01/server.112/e25523/parallel002.htm
24 сен 15, 12:46    [18189387]     Ответить | Цитировать Сообщить модератору
 Re: Имеет ли смысл разбивать запрос к большим таблицам на несколько параллельных запросов?  [new]
ArtNick
Member

Откуда:
Сообщений: 1227
OracleMiracle
ArtNick,
Это общий вопрос - помогает или нет.

Судя по количеству ответов этот подход не был опробовал присутствующими :)
24 сен 15, 13:27    [18189640]     Ответить | Цитировать Сообщить модератору
 Re: Имеет ли смысл разбивать запрос к большим таблицам на несколько параллельных запросов?  [new]
ArtNick
Member

Откуда:
Сообщений: 1227
OracleMiracle,
Стесняюсь спросить, а Вы оценивали свою идею с точки зрения блочного хранения данных?
Вы анализировали на своих данных статистику выполнения вариантов запросов?
24 сен 15, 13:49    [18189782]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить