Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Эффективная выборка записей по списку ID  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
В догонку тынц по теме
22 окт 08, 13:40    [6340480]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
Yo.!
Guest
Senya_L
Ребята, занакуя?! Занакуя мерять ограничения СУБД в таком вопросе? Чтобы померяться звонкостью звука в штанах? Есть же решение
Ggg_old
закидывате все айдишники на сервер в таблицу(временную например) и потом используете ее в join.
закидывать можно раными способами, конкретный механизм зависит от сервера и ваших требований.


ну например для того, чтоб не тратить на два порядка больше ресурсов на "закидывание" (10К инсертов с клиента).
22 окт 08, 13:42    [6340495]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
тыц
Member

Откуда: центральная нигерия
Сообщений: 4214
Senya_L
то логика такая получается. Делаем криво запрос, а потом гоним на СУБД: "Фууу... какая вона слабая ... Вот у Оракула ....эт да!"
не тута как раз на оракуля и гонят).. а вообще да бредятина откровеная
22 окт 08, 13:42    [6340503]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
тыц
Member

Откуда: центральная нигерия
Сообщений: 4214
Yo.!
ну например для того, чтоб не тратить на два порядка больше ресурсов на "закидывание" (10К инсертов с клиента).
а нафига вообще эти 10к идентификаторов тянуть на клиент?
22 окт 08, 13:43    [6340511]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
miksoft
Member

Откуда:
Сообщений: 38919
тыц
Yo.!
ну например для того, чтоб не тратить на два порядка больше ресурсов на "закидывание" (10К инсертов с клиента).
а нафига вообще эти 10к идентификаторов тянуть на клиент?
Почему "тянуть" ? Они вообще могут из произвольного источника происходить, а вовсе не обязательно с сервера.
22 окт 08, 13:45    [6340521]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Yo.!
Senya_L
Ребята, занакуя?! Занакуя мерять ограничения СУБД в таком вопросе? Чтобы померяться звонкостью звука в штанах? Есть же решение
Ggg_old
закидывате все айдишники на сервер в таблицу(временную например) и потом используете ее в join.
закидывать можно раными способами, конкретный механизм зависит от сервера и ваших требований.


ну например для того, чтоб не тратить на два порядка больше ресурсов на "закидывание" (10К инсертов с клиента).
Все же почитай. Речь о том, что вобще искать пересечение множеств через предикаты (фильтры) - это извращение и, скорее всего, свидетельствует о руках.
miksoft
Почему "тянуть" ? Они вообще могут из произвольного источника происходить, а вовсе не обязательно с сервера.
Да речь идет именно об ID-шниках. Потому что другого внятного примера нет
22 окт 08, 13:46    [6340535]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
тыц
Member

Откуда: центральная нигерия
Сообщений: 4214
Senya_L
Все же почитай.
отличный пример!)
22 окт 08, 13:51    [6340573]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
Yo.!
ну например для того, чтоб не тратить на два порядка больше ресурсов на "закидывание" (10К инсертов с клиента).
А для каждой из 1000000 строк делать 10К проверок WHERE это как, кошерно, да? И вообще, о
автор
(10К инсертов с клиента)
в приличном обществе как то непринято говорить...
22 окт 08, 13:56    [6340610]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
Yo.!
Guest
2Senya_L
перечитайте два моих поста, вы не вьехали в суть предложения.

2тыц
в задаче сказано: "10000 Id-шников есть в памяти приложения, нужно по ним выбрать данные из таблицы."
кочено нафантазировать можно чего угодно, но у меня к примеру похожая задача - клиент грузит список ид компаний своих клиентов по которым хочет получить репорт.
22 окт 08, 14:03    [6340688]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Senya_L
Yo.!
ну например для того, чтоб не тратить на два порядка больше ресурсов на "закидывание" (10К инсертов с клиента).
А для каждой из 1000000 строк делать 10К проверок WHERE это как, кошерно, да? И вообще, о
автор
(10К инсертов с клиента)
в приличном обществе как то непринято говорить...

ну допустим этот список приходит откуда то из файла
почему бы тогда не сгенерить такой запрос? нахрена лишнии вставки/чтения?

зачем быть таким категоричным и упёртым? Вы же не знаете всех условий задачи, а судите сходу
ну высказали свою точку зрения - ну и достаточно, зачем еще топикстартера оскорблять?
наверное у нас разные понятия о приличном обществе

Сообщение было отредактировано: 22 окт 08, 14:05
22 окт 08, 14:04    [6340695]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
SergSuper
зачем быть таким категоричным и упёртым? Вы же не знаете всех условий задачи, а судите сходу
ну высказали свою точку зрения - ну и достаточно, зачем еще топикстартера оскорблять?
наверное у нас разные понятия о приличном обществе
Топикстартера оскорблять не хотел. Если в горячкАх зарвался, то прошу прощения.
Насчет упертости ... Можно поспорить. Например, Вы упорно закрываете глаза на пост
Senya_L
А для каждой из 10000000 строк делать 10К проверок WHERE это как, кошерно, да?
??? Я поправил кол-во строк, заметьте. Их стало 10000000, как в старт-топике.
SergSuper
ну допустим этот список приходит откуда то из файла
почему бы тогда не сгенерить такой запрос? нахрена лишнии вставки/чтения?
Вы приведите нормальный пример. Что за список приходит, с чем, зачем?
22 окт 08, 14:30    [6340864]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
miksoft
Oracle - не более 1000 значений

Не совсем верно.
22 окт 08, 14:37    [6340916]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
Senya_L
то логика такая получается. Делаем криво запрос, а потом гоним на СУБД: "Фууу... какая вона слабая ... Вот у Оракула ....эт да!"

У некоторых людей регулярно используется обратная логика: раз СУБД не тянет, значит запрос кривой, и вообще решать эту задачу никогда никому не нужно, пользователю, который хочет, нужно объяснить, что он идиот и вообще, но главное СУБД супер.
22 окт 08, 14:39    [6340942]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
тыц
Member

Откуда: центральная нигерия
Сообщений: 4214
softwarer
miksoft
Oracle - не более 1000 значений

Не совсем верно.
не раскажите как на самом деле?.. любопытно но проверять лень)
22 окт 08, 14:44    [6340973]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
Микросекунда
Member

Откуда: Из предыдущего мгновения
Сообщений: 1905
softwarer пишет:

s> У некоторых людей регулярно используется обратная логика:
s> раз СУБД не тянет, значит запрос кривой, и вообще решать
s> эту задачу никогда никому не нужно, пользователю, который
s> хочет, нужно объяснить, что он идиот и вообще, но главное
s> СУБД супер.

А ты противоположную крайность не перекидываешься ? ИМХО, если сервер влоб не справляется с запросом, или он вылазит за ограничения, то 90% за то, что задачу можно переформулировать или решить менее затратными методами, чем испытывать сервак мегабайтными запросами :)

В данном конкретном случае - для ФБ есть нормальное решение, но оно не влоб

Posted via ActualForum NNTP Server 1.4

22 окт 08, 14:46    [6340989]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54801

softwarer

У некоторых людей регулярно используется обратная логика:

Если кто-то не может молотком забить гвоздь в бетонную стену, то из них
плохой: молоток, гвоздь или стена?

Posted via ActualForum NNTP Server 1.4

22 окт 08, 14:47    [6340992]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
тыц
не раскажите как на самом деле?.. любопытно но проверять лень)

Ограничение действует на количество значений внутри одного списка IN. Но никто не мешает сделать так:

where id in (..) or id in (..) or id in (..) ...

или так:

where id in (select column_value from table (:values_list))
22 окт 08, 15:02    [6341133]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
Dimitry Sibiryakov
Если кто-то не может молотком забить гвоздь в бетонную стену, то из них
плохой: молоток, гвоздь или стена?

Замечательная аналогия, давай ее разовьем. Итак, есть пользователь, который живет в доме с бетонной стеной и хочет повесить на эту стену картину. Приходит в форум за советом. Ему среди прочего говорят: нет, молоток и гвоздь тебе не очень помогут, бери перфоратор.

Так вот: в этот момент обязательно находится кто-нибудь, кто начинает объяснять, что:

- надо брать правильные дома
- а если дом неправильный, то можно и самому сложить правильную стену
- а вешать картины вообще никому не нужно, лучше фотообои поклеить
- и потому нефиг "наезжать" на замечательный молоток.
22 окт 08, 15:10    [6341201]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
miksoft
Member

Откуда:
Сообщений: 38919
softwarer
тыц
не раскажите как на самом деле?.. любопытно но проверять лень)

Ограничение действует на количество значений внутри одного списка IN. Но никто не мешает сделать так:

where id in (..) or id in (..) or id in (..) ...

или так:

where id in (select column_value from table (:values_list))

Помимо этого, нет ограничения на количество наборов значений в списке.
Конструкция
where (id,0) in ((...,0),(...,0),(...,0),...)
вполне позволяет использовать более 1000 значений.
22 окт 08, 15:14    [6341243]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
Senya_L
Member

Откуда: Москва
Сообщений: 5381
softwarer
Так вот: в этот момент обязательно находится кто-нибудь, кто начинает ...
Упражнение в аллегориях дело интересное, конечно. Но я так и не услышал ответа на конкретный вопрос. Задам в третий раз
Senya_L
А для каждой из 1000000 строк делать 10К проверок WHERE это как, кошерно, да?
А "молоток" выдержит? ;)
22 окт 08, 15:21    [6341327]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
Senya_L
Задам в третий раз
Senya_L
А для каждой из 1000000 строк делать 10К проверок WHERE это как, кошерно, да?
А "молоток" выдержит? ;)

Классический пример к тезису "если не хотеть немного поработать головой, придется много работать руками".
22 окт 08, 15:23    [6341351]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
miksoft
Member

Откуда:
Сообщений: 38919
Senya_L
А для каждой из 1000000 строк делать 10К проверок WHERE это как, кошерно, да?
А почему вы думаете, что "для каждой строки" придется делать "все проверки" ?
Оракл, например, не стесняется в таких случаях использовать INDEX RANGE SCAN.
22 окт 08, 15:26    [6341373]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
Микросекунда
А ты противоположную крайность не перекидываешься ?

Мм.... довольно типичный сценарий моего участия в топике выглядит примерно так:

- спорят А и Б
- я говорю в адрес А: вот здесь ты сказал глупость
- куча зрителей во главе с А: так значит softwarer за Б! А ведь там X, Y и Z!!
- я говорю в адрес Б: а ты сказал глупость вот здесь
- Б, который был уверен, что я его поддерживаю, чувствует себя преданным
- А злорадствует и одновременно понимает, что был прав, когда гнал на нехорошего меня
- зрители вообще перестают что-либо понимать в происходящем.
22 окт 08, 15:32    [6341439]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54801

softwarer

в этот момент обязательно находится кто-нибудь, кто начинает объяснять, что:
- и потому нефиг "наезжать" на замечательный молоток.

И это логично, поскольку в современных условиях на бетонную стену проще
наклеить деревянную рейку (не помню как она называется), а уже на неё
вещать картину. Но топикстартеры такого типа обычно как раз назначение
гвоздя в стене не раскрывают и настаивают на использовании молотка.

Posted via ActualForum NNTP Server 1.4

22 окт 08, 15:48    [6341589]     Ответить | Цитировать Сообщить модератору
 Re: Эффективная выборка записей по списку ID  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67468
Блог
Dimitry Sibiryakov
И это логично, поскольку

Дим, ты ухитрился в одной фразе поддержать точки зрения обеих принципиально не согласных сторон виртуальной дискуссии. Из этого мне приходится сделать вывод, что тебе настолько хочется поспорить, что ты уже не думаешь - о чем, собственно.
22 окт 08, 15:54    [6341639]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить