Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Будет ли быстрей запрос обработать, средствами движка? / 18 сообщений из 18, страница 1 из 1
28.01.2011, 10:00
    #37083481
NikolaNetesla
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
Как быстрей обработается запрос когда сервер будет выдавать по одному параметру или когда результатом будет таблица и обработка возлагается на другую программу. т.е.


Вариант №1
SELECT "fio" FROM "table" WHERE "inn" = 2222, or "inn" = 3333, or "inn" = 4444, or "inn" = 5555 ...

Вариант №2
SELECT "fio" FROM "table"
запустить программу которая отображает график, но фильтровать результат


размер таблицы 2х1000строк



затем предпологается вывести график, показать таблицу или её часть.
...
Рейтинг: 0 / 0
28.01.2011, 10:16
    #37083550
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
В общем случае трудно сказать, что будет быстрее. Думаю, что 2-й вариант.
Что мешает попробовать оба ?
...
Рейтинг: 0 / 0
28.01.2011, 10:28
    #37083591
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
NikolaNetesla,

Если поля по которым идет отбор в п.1 проиндекированы и объем таблицы большой то п.1 будет быстрее.
...
Рейтинг: 0 / 0
28.01.2011, 11:32
    #37083814
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
On 28.01.2011 10:00, NikolaNetesla wrote:

> Как быстрей обработается запрос когда сервер будет выдавать по одному параметру
> или когда результатом будет таблица и обработка возлагается на другую программу.
> т.е.

Немножко знаешь ли от размера таблицы зависит.
Если такая очевидная мысль тебе в голову не пришла,
можешь её подумать.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
28.01.2011, 11:38
    #37083833
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
NikolaNetesla,

и зависит от СУБД.
Какая-то СУБД догадается преобразовать запрос через UNION ALL и использовать индекс, а какая-то - нет.
...
Рейтинг: 0 / 0
28.01.2011, 12:25
    #37083987
Edkonst2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
NikolaNetesla,

Ага, а если мильон записей - вы их все перегоните клиенту у там будите фильтровать? Не стоит ИМХО сие делать.
...
Рейтинг: 0 / 0
28.01.2011, 13:44
    #37084196
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
Edkonst2008Ага, а если мильон записей - вы их все перегоните клиенту у там будите фильтровать?
Угу. Сам видел как одним людям перегоняли кучу мусора в эксель. В итоге файл экселя весил под 10 метров. Говорить о том как классно им было в этом экселе ворочаться даже небуду - думаю и так все понятно.
...
Рейтинг: 0 / 0
28.01.2011, 16:14
    #37084783
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
Edkonst2008NikolaNetesla, Ага, а если мильон записей ...не читатель? NikolaNeteslaразмер таблицы 2х1000строк
...
Рейтинг: 0 / 0
28.01.2011, 16:45
    #37084888
NikolaNetesla
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
Немного колебаюсь ещё перед выбором, но наверное попробую оба способа.

Еще вопрос разрешите? Любой из способов будет гораздо эффективнее чем (простите) "дрочить" сервер одиночными запросами? Или без разницы?
т.е.

SELECT "fio" FROM "table" WHERE "inn" = 2222
обработал

SELECT "fio" FROM "table" WHERE "inn" = 3333
обработал

SELECT "fio" FROM "table" WHERE "inn" = 4444
обработал

SELECT "fio" FROM "table" WHERE "inn" = 5555
обработал

SELECT "fio" FROM "table" WHERE "inn" = 6666
обработал

SELECT "fio" FROM "table" WHERE "inn" = 7777
обработал
....
...
Рейтинг: 0 / 0
31.01.2011, 00:05
    #37087319
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
On 28.01.2011 16:45, NikolaNetesla wrote:

> Еще вопрос разрешите? Любой из способов будет гораздо эффективнее чем (простите)
> "дрочить" сервер одиночными запросами? Или без разницы?

СУБД, таблицы, их размер, индексы. После этого о чём-то можно говорить.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
31.01.2011, 09:36
    #37087527
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
Код: plaintext
SELECT "fio" FROM "table" WHERE "inn" IN ( 2222 , 3333 , 4444 , 5555  ...) ORDER BY "inn"
...
Рейтинг: 0 / 0
31.01.2011, 16:43
    #37088863
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
NikolaNeteslaНемного колебаюсь ещё перед выбором, но наверное попробую оба способа.

Еще вопрос разрешите? Любой из способов будет гораздо эффективнее чем (простите) "дрочить" сервер одиночными запросами? Или без разницы?


В общем случае одно сложное задание (SQL запрос) можно выполнить быстрее и эффективнее, чем кучу простых заданий с тем же результатом. Выполняя сложный SQL запрос СУБД может оптимизировать работу, выбрать способ лучше, чем декомпозиция на простые задания, кроме того на выполнение любого запроса требуются некоторые накладные расходы - меньше запросов - меньше расходов.
...
Рейтинг: 0 / 0
01.02.2011, 09:31
    #37089804
maximand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
Я дилетант, но только что переделал кусок кода в программе mmex где сделал один "сложный" sql запрос вместо двух простых аля select a,b,c from table c последующей обработкой, сортировкой, куча циклов, сравнений и т.п.
Преимущества:
1. sql код готовится в девелопере, где оптимизируется и измеряется его скорость.
2. Такой код проще понять и проверить.
3. Програмный код (в моём случае жто C++) становиться проще (уверен быстрее и компактнее)
4. sql возвращает меньшее кол-во строк, соответсвенно меньше буферов задействовано (Можно и поспорть, но буферы внутри sql движка проверены временем).
5. Надо помнить про масштабирование, сегодня 2000 строк завтра 100000 и т.д.
...
Рейтинг: 0 / 0
02.02.2011, 10:14
    #37092319
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
On 31.01.2011 16:43, mcureenab wrote:

> В общем случае одно сложное задание (SQL запрос) можно выполнить быстрее и
> эффективнее, чем кучу простых заданий с тем же результатом.

Далеко не всегда.

Выполняя сложный SQL
> запрос СУБД может оптимизировать работу,

Именно потому, что МОЖЕТ оптимизировать, а МОЖЕТ И НЕ оптимизировать.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
02.02.2011, 12:26
    #37092771
mcureenab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
MasterZiv,

поменяйте СУБД, на ту которая может чаще, чем не может.
...
Рейтинг: 0 / 0
03.02.2011, 01:44
    #37094367
PEAKTOP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
NikolaNeteslaКак быстрей обработается запрос когда сервер будет выдавать по одному параметру или когда результатом будет таблица и обработка возлагается на другую программу. т.е. ....... затем предпологается вывести график, показать таблицу или её часть.

Синтаксис СУБД соответствующих SQL92
Код: plaintext
1.
2.
3.
SELECT "fio" 
FROM   "table" 
WHERE ('~2222~3333~4444~5555~6666~....~nnnn~' CONTAINING '~'||"inn"||'~')


Синтаксис СУБД несоответствующих SQL92 (например, MySQL)
Код: plaintext
1.
2.
3.
SELECT "fio" 
FROM   "table" 
WHERE ( CONCAT('~','2222~','3333~','4444~','5555~','6666~',....'nnnn~') CONTAINING CONCAT('~',"inn",'~') )
...
Рейтинг: 0 / 0
03.02.2011, 13:50
    #37095285
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
PEAKTOP,

а что это за CONTAINING ?
Насколько я знаю, его нет ни в Оракле, ни в MySQL.

И, кстати, MySQL может выполнять конкатенацию строк оператором ||.
...
Рейтинг: 0 / 0
07.02.2011, 10:27
    #37101565
NikolaNetesla
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Будет ли быстрей запрос обработать, средствами движка?
>miksoft,а что это за CONTAINING ?
>Насколько я знаю, его нет ни в Оракле, ни в MySQL.
Postgresql, тоже с ними. А ведь как красиво выглядело бы...
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Будет ли быстрей запрос обработать, средствами движка? / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]