Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Запрос. Хорошо или плохо?  (Прочитано 583 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Дядюшка Ау

  • Автор темы
  • Участник
  • *
  • Сообщений: 123
  • Дайте две!
    • Просмотр профиля
Запрос. Хорошо или плохо?
« : 06 Апрель 2012, 11:47:51 »
Есть некий запрос, который MS SQL сервер выполняет за 4.5 - 5 секунд. Результирующая выборка содержит ~80 тысяч записей.
Запрос сложный. Такое время выполнения это в среднем хорошо или плохо? Понятно, что все зависит от запроса и от плана выполнения и от характера данных, но в среднем, если бы вам сказали 80 тыс. записей за 5 секунд - вы бы стали что-то оптимизировать?
Ubuntu 12.04 для поколупацца, Win7 для поработать

Оффлайн kobzar

  • Активист
  • *
  • Сообщений: 253
  • ooOOOooo
    • Просмотр профиля
Re: Запрос. Хорошо или плохо?
« Ответ #1 : 06 Апрель 2012, 11:54:19 »
да.  я бы оптимизировал мозги того что просит оптимизацию.
Кто понял жизнь, тот не спешит...

Оффлайн Дядюшка Ау

  • Автор темы
  • Участник
  • *
  • Сообщений: 123
  • Дайте две!
    • Просмотр профиля
Re: Запрос. Хорошо или плохо?
« Ответ #2 : 06 Апрель 2012, 11:59:42 »
да.  я бы оптимизировал мозги того что просит оптимизацию.
Поясни, мои мозги за такой топик или того, кто меня просит об оптимизации?
Ubuntu 12.04 для поколупацца, Win7 для поработать

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: Запрос. Хорошо или плохо?
« Ответ #3 : 06 Апрель 2012, 12:10:34 »
Есть некий запрос, который MS SQL сервер выполняет за 4.5 - 5 секунд. Результирующая выборка содержит ~80 тысяч записей.
Запрос сложный.
...

Очень это всё неопределённо рассказано:

1. MS SQL сервер - это Windows
1.1. при чём здесь он в Linux форуме?
1.2. или он удалённо в сети используется? ... так это совсем другая задача

2. Каким клиентом выполняете SQL запрос? Или это может косвенно через ODBC интерфейс из С-кода? Или это, может, Java? Или что-то скриптовое: Perl? Python?

3. На каком процессоре это, в конце концов, делается? И может ли ваш клиент распараллеливать ветви SQL запроса? и написан ли так сам сложный SQL запрос, что он может быть распараллелен?

От этих вариантов результаты (по времени) будут отличаться не в разы, а на несколько порядков!

Оффлайн Дядюшка Ау

  • Автор темы
  • Участник
  • *
  • Сообщений: 123
  • Дайте две!
    • Просмотр профиля
Re: Запрос. Хорошо или плохо?
« Ответ #4 : 06 Апрель 2012, 12:59:46 »

1. MS SQL сервер - это Windows
1.2. или он удалённо в сети используется? ... так это совсем другая задача

Да, удаленно, по сети. Вызов ODBC, машина с SQL сервером под виндой, ТТХ не знаю, вроде неплохая. Интересует именно время выполнения запроса SQL-сервером, независимо от клиента. Понятно, что железо играет роль и возможность распараллеливания тоже. Меня интересовало субъективное мнение - насколько это медленно. Задавая вопрос я думал, что будут ответы типа "80 тысяч это фигня, должно летать" или "ну в целом нормально". Короче, точная оценка не сильно интересует, т.к. она, как Вы правильно заметили, зависит от слишком многих факторов.
Ubuntu 12.04 для поколупацца, Win7 для поработать

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Запрос. Хорошо или плохо?
« Ответ #5 : 06 Апрель 2012, 13:13:17 »
Дядюшка Ау, в рамках решения поставленной задачи указанное время выполнения является приемлемым?
От этого плясать, не?

Оффлайн Дядюшка Ау

  • Автор темы
  • Участник
  • *
  • Сообщений: 123
  • Дайте две!
    • Просмотр профиля
Re: Запрос. Хорошо или плохо?
« Ответ #6 : 06 Апрель 2012, 13:16:57 »
Дядюшка Ау, в рамках решения поставленной задачи указанное время выполнения является приемлемым?
От этого плясать, не?

В рамках решения задачи является пока приемлемым, но пользователи иногда ворчат. Вот я и думаю, если явно бросается в глаза, что такие выборки должны делаться быстро в большинстве случаев, то буду искать способы оптимизации. Если же в целом такие выборки за несколько секунд - это ничего так, приемлемо, то подожду пока.
Ubuntu 12.04 для поколупацца, Win7 для поработать

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: Запрос. Хорошо или плохо?
« Ответ #7 : 06 Апрель 2012, 13:51:00 »
В рамках решения задачи является пока приемлемым, но пользователи иногда ворчат. Вот я и думаю, если явно бросается в глаза, что такие выборки должны делаться быстро в большинстве случаев, то буду искать способы оптимизации. Если же в целом такие выборки за несколько секунд - это ничего так, приемлемо, то подожду пока.

Если для интерактивной, диалоговой системы, то такое время отклика явно неприемлемо.
При работе с оператором граничное время отклика считается до 1 сек.

P.S. работа через промежуточный интерфейсный слой ODBC может вам многого стоить.
 

Оффлайн Дядюшка Ау

  • Автор темы
  • Участник
  • *
  • Сообщений: 123
  • Дайте две!
    • Просмотр профиля
Re: Запрос. Хорошо или плохо?
« Ответ #8 : 06 Апрель 2012, 14:15:11 »
Если для интерактивной, диалоговой системы, то такое время отклика явно неприемлемо.
При работе с оператором граничное время отклика считается до 1 сек.

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

Цитировать
P.S. работа через промежуточный интерфейсный слой ODBC может вам многого стоить.

Почему? Слой позволяет обратиться к СУБД и обработать результаты запроса, но как он влияет на время, за которое СУБД выполняет запрос?
Ubuntu 12.04 для поколупацца, Win7 для поработать

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: Запрос. Хорошо или плохо?
« Ответ #9 : 06 Апрель 2012, 15:17:13 »
Если для интерактивной, диалоговой системы, то такое время отклика явно неприемлемо.
При работе с оператором граничное время отклика считается до 1 сек.

Если кнопка нажимается несколько раз в месяц, то и более секунды - нормально.
Это ж я вам не наугад цифру привёл, а из какого-то ТУ, ТЗ ... по эргономике, построению человеко-машинных интерфейсов (IBM, кажется)  etc.
Даже если кнопка нажимается и всего один раз (запуск стратегической ядерной ракеты ;)), то и на неё распространяются общие принципы общей стандартизации.
(при больших задержках считается, что оператор начинает истерить и делать повторные действия, чем просто убивает систему)

Цитировать
P.S. работа через промежуточный интерфейсный слой ODBC может вам многого стоить.

Почему? Слой позволяет обратиться к СУБД и обработать результаты запроса, но как он влияет на время, за которое СУБД выполняет запрос?
Слой ODBC (JDBC) за свою промежуточность вносит изрядную неэффективность (я уже не помню деталей), ODBC это ведь не основной механизм доступа (мэйнстрим), а так ... побочная доделка.
А то что "позволяет обратиться"?...
Так и цикл элементарный можно записать на С, Java, Perl и bash, но по затратам времени они будут сильно различаться.
 

Оффлайн Дядюшка Ау

  • Автор темы
  • Участник
  • *
  • Сообщений: 123
  • Дайте две!
    • Просмотр профиля
Re: Запрос. Хорошо или плохо?
« Ответ #10 : 09 Апрель 2012, 09:14:07 »
Даже если кнопка нажимается и всего один раз (запуск стратегической ядерной ракеты ;))

Посмеялся, спасибо! Хороший пример полезной системы, которая используется только один раз :)
Ubuntu 12.04 для поколупацца, Win7 для поработать

 

Страница сгенерирована за 0.087 секунд. Запросов: 25.