Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Время запроса / 17 сообщений из 17, страница 1 из 1
13.04.2019, 12:43
    #39800893
IronKancler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
Привет.
Подскажите пожалуйста.. сколько по времени должна производится выборка из таблицы
"SELECT TOP 200 * FROM dbo.order" ? Конфигурация сервера хорошая.. SSD, 6 ядер. Включено TDE. В таблице около 50-ти различных столбцов.
Время вывода данных (на терминале в managment studio) от 200 мс до 800 - мне кажутся эти цифры очень большими, что минимальной значение что максимальное.

Время вывода проверяю не 'клиентской статистикой', а так:

DECLARE @d1 datetime = GETDATE()
SELECT TOP 200 *
FROM dbo.order
DECLARE @d2 datetime = GETDATE()
SELECT DATEDIFF(MILLISECOND, @d1, @d2)
...
Рейтинг: 0 / 0
13.04.2019, 12:58
    #39800895
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
А за какое время землекопы выкапывают яму?
...
Рейтинг: 0 / 0
13.04.2019, 16:18
    #39800919
IronKancler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
Гавриленко Сергей Алексеевич,

Хотелось бы за 50 мс
...
Рейтинг: 0 / 0
13.04.2019, 16:21
    #39800922
IronKancler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
Гавриленко Сергей Алексеевич,

Просто я не знаю, есть ли возможность ускорить выборку или это время нормальное...
Задержка в почти в секунду заметная так-то для пользователя, тк накладываются и еще задержки
...
Рейтинг: 0 / 0
14.04.2019, 00:54
    #39800993
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
IronKanclerПросто я не знаю, есть ли возможность ускорить выборку или это время нормальное...
Задержка в почти в секунду заметная так-то для пользователя, тк накладываются и еще задержкиСам по себе этот запрос должен выполняться очень быстро, менее чем за 1 мс, если, конечно, строка достаточно узкая. Потому что это всего лишь чтение одной-нескольких страниц из RAM
Но от выполнения запроса, до видимой пользователю реакции клиентского приложения, много чего происходит.
Например, миллисекунды в вашем коде покажут ещё и чтение строк клиентом.
Ещё нужно смотреть задержки сети, блокировки.
...
Рейтинг: 0 / 0
14.04.2019, 11:16
    #39801022
dklim.kzn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
без order by разве что обои на стену печатать данные выдавать?
по топ можно получить что угодно независимо от наличия индексов и последовательности вставки
если индексы всё же есть, то лучше указать порядок сортировки в запросе (или в подзапросе, если это оно для чего-то большего)
если их нет или неподходящие - то with (index=0) и/или (forcescan) попробовать
мало ли чего там серверу в голову взбредет и по каким страницам начнет лазить
я б вообще на месте разработчиков задержку делал при отсутствии order by чтоб неповадно было) может и сделали)))
...
Рейтинг: 0 / 0
14.04.2019, 13:12
    #39801038
IronKancler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
dklim.kzn,

Order by нет, это пример запроса а не реальный запрос. В том и дело что сам вывод информации на сервере в managment studio выдаёт такое время. В клиентской статистике же показывает время в районе 20-100 мс. т.е. сам запрос без вывода работает нормально, а вот вывод почему то медленный. Возможно это норма, но мне нужен хороший отклик, тк реальный запрос передается сразу по Web socket клиенту. Реальный запрос тоже в клиентской статистике быстрый, а вывод медленный.
...
Рейтинг: 0 / 0
14.04.2019, 17:05
    #39801087
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
И при чем здесь сервер тогда? Оптимизируйте ваше клиентское приложение, чтобы быстрее работало.
...
Рейтинг: 0 / 0
14.04.2019, 17:32
    #39801089
IronKancler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
Гавриленко Сергей Алексеевич,

Передача(вывод) в самой managment studio не сильно шустрый. Я провожу аналогию между выводом информации в menagment studio и получением данных от сервера в клиентском приложении. т. е. у меня клиентской приложение получает данные от сервера в среднем за 600 мс скажем и menagment studio (установленая на сервере) тоже за примерно такое же время. Клиентская статистика показывает не плохой результат да.. но конечное время для пользователя плохое. Если я не могу получить требуемое время в menagment studio, то я думаю оптимизировать приложение клиентской нет смысла. Я ошибаюсь?
...
Рейтинг: 0 / 0
14.04.2019, 19:55
    #39801112
Злой Бобр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
IronKancler,

Хватит воду каламутить. Тут телепатов нет. Поэтому или выкладывайте реальный запрос, структуру таблицы, замер производительности, ...
Запрос в несколько строк может повесить абсолютно любой сервер. Плюс непонимание того как именно отрабатывает запрос на сервере, приводит к таким перлам что слов нет (от кривых блокировок до ...). В общем дьявол кроется в деталях.
...
Рейтинг: 0 / 0
14.04.2019, 20:02
    #39801114
IronKancler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
Злой Бобр,
Да причём тут телепаты. Попробуйте вывести 200 строк с 20-50 столбцами, увидите что время запроса большое
...
Рейтинг: 0 / 0
14.04.2019, 20:05
    #39801115
IronKancler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
Гавриленко Сергей Алексеевич,

Вы правы, надо оптимизировать выборку. Нет смысла тягать всегда все строки.. Можно делать частые запросы на последнии добавленные записи и полную выборку там где не нужна оперативность, и изменять кэш.
Спасибо за наводку, не сразу понял ошибку свою
...
Рейтинг: 0 / 0
14.04.2019, 20:38
    #39801126
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
Злой БобрПоэтому или выкладывайте реальный запрос, структуру таблицы, замер производительностиНапример:
Код: sql
1.
2.
3.
DECLARE @d1 datetime = GETDATE()
select top 200 * from syscolumns
SELECT DATEDIFF(MILLISECOND, @d1, GETDATE())

720мс
...
Рейтинг: 0 / 0
14.04.2019, 20:58
    #39801129
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
alexeyvgНапример:
Код: sql
1.
2.
3.
DECLARE @d1 datetime = GETDATE()
select top 200 * from syscolumns
SELECT DATEDIFF(MILLISECOND, @d1, GETDATE())


720мс720 мс в SSMS
Набросал прогу на C#, прочитала за 55 мс
Тупо цикл по SqlDataReader.Read()
Так что, IronKancler, есть резервы, есть :-)
...
Рейтинг: 0 / 0
14.04.2019, 21:03
    #39801131
IronKancler
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
alexeyvg,

Значит у меня и на уровне кода задержки, сереализация видимо... :(
Спасибо, проверю
...
Рейтинг: 0 / 0
14.04.2019, 21:39
    #39801143
dklim.kzn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
ну выведите одну строчку

DECLARE @d1 datetime = GETDATE()
select count(*) from (select top 200 * from syscolumns (nolock)) r
SELECT DATEDIFF(MILLISECOND, @d1, GETDATE())

ну и вообще (nolock) не помешал бы
...
Рейтинг: 0 / 0
14.04.2019, 21:45
    #39801146
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Время запроса
dklim.kznну выведите одну строчкуМеньше 1 мс
Ну это сразу было понятно, что дело в передаче на клиента, и обработке там.
Считать несколько страниц из памяти - это очень быстро.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Время запроса / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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