Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос SSMS выполняется разное время  [new]
drgdr
Member

Откуда:
Сообщений: 70
Добрый день, гуру и остальные!
Подскажите пожалуйста, с чем может быть связана такая ситуация:
С 2 разных рабочих машин, подключенных к одному MS SQL Серверу выполняют запрос:

SELECT *
FROM [dbo].[Messages]

~25000 строк

С одной машины запрос выполняется 80 секунд, с другой - 12.
Такой разброс в результатах странный, ведь запрос выполняется на сервере(?)

Сообщение было отредактировано: 17 фев 21, 11:44
17 фев 21, 11:51    [22282126]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
vikkiv
Member

Откуда: EU
Сообщений: 2916
drgdr,

между сервером и пользователем сеть есть? или провода разные?
их клиентские машины по конфигурации под нагрузками совсем одинаковые?
17 фев 21, 12:03    [22282134]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
msLex
Member

Откуда:
Сообщений: 8720
drgdr
Добрый день, гуру и остальные!
Подскажите пожалуйста, с чем может быть связана такая ситуация:
С 2 разных рабочих машин, подключенных к одному MS SQL Серверу выполняют запрос:

SELECT *
FROM [dbo].[Messages]

~25000 строк

С одной машины запрос выполняется 80 секунд, с другой - 12.
Такой разброс в результатах странный, ведь запрос выполняется на сервере(?)


Выполняется на сервере, а результаты передаются и отображаются на клиенте.

Судя по названию таблицы, там вполне могут быть поля больших размеров.


Для нивелирования влияния клиентского хоста и сетью между ним и сервером, выполните

SELECT *
INTO #t
FROM [dbo].[Messages]
17 фев 21, 12:12    [22282139]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
drgdr
Member

Откуда:
Сообщений: 70
vikkiv
drgdr,

между сервером и пользователем сеть есть? или провода разные?
их клиентские машины по конфигурации под нагрузками совсем одинаковые?


да, машины разные, сетевухи разные (у того который медленнее выполняет запрос - 100Мбит, у того который быстрее - 1Гбит)
я считал раз селект выполняется на сервере, значит и скорость выполнения должна быть одинаковой несмотря на различия в сетевой конфигурации (?)
17 фев 21, 12:14    [22282140]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3971
drgdr
vikkiv
drgdr,

между сервером и пользователем сеть есть? или провода разные?
их клиентские машины по конфигурации под нагрузками совсем одинаковые?


да, машины разные, сетевухи разные (у того который медленнее выполняет запрос - 100Мбит, у того который быстрее - 1Гбит)
я считал раз селект выполняется на сервере, значит и скорость выполнения должна быть одинаковой несмотря на различия в сетевой конфигурации (?)


а 25000 строк результата как-то и куда-то тянутся?
17 фев 21, 12:19    [22282147]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
drgdr
Member

Откуда:
Сообщений: 70
Ролг Хупин
drgdr
пропущено...


да, машины разные, сетевухи разные (у того который медленнее выполняет запрос - 100Мбит, у того который быстрее - 1Гбит)
я считал раз селект выполняется на сервере, значит и скорость выполнения должна быть одинаковой несмотря на различия в сетевой конфигурации (?)


а 25000 строк результата как-то и куда-то тянутся?


понятно, просто почему-то не учитывал это. как подсчитать количество информации в КБ, которое передает запрос?
дизайн таблицы во вложении

К сообщению приложен файл. Размер - 29Kb
17 фев 21, 12:29    [22282156]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
drgdr
Member

Откуда:
Сообщений: 70
msLex
drgdr
Добрый день, гуру и остальные!
Подскажите пожалуйста, с чем может быть связана такая ситуация:
С 2 разных рабочих машин, подключенных к одному MS SQL Серверу выполняют запрос:

SELECT *
FROM [dbo].[Messages]

~25000 строк

С одной машины запрос выполняется 80 секунд, с другой - 12.
Такой разброс в результатах странный, ведь запрос выполняется на сервере(?)


Выполняется на сервере, а результаты передаются и отображаются на клиенте.

Судя по названию таблицы, там вполне могут быть поля больших размеров.


Для нивелирования влияния клиентского хоста и сетью между ним и сервером, выполните

SELECT *
INTO #t
FROM [dbo].[Messages]


выполнили - запрос выполняется за 24-26 секунд на обеих машинах.
дизайн таблицы я выше запостил, подскажете как посчитать размер передаваемых данных?
17 фев 21, 12:34    [22282163]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
msLex
Member

Откуда:
Сообщений: 8720
drgdr
msLex
пропущено...


Выполняется на сервере, а результаты передаются и отображаются на клиенте.

Судя по названию таблицы, там вполне могут быть поля больших размеров.


Для нивелирования влияния клиентского хоста и сетью между ним и сервером, выполните

SELECT *
INTO #t
FROM [dbo].[Messages]


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

Включить в SSMS перед выполнение запроса (который без into #t) сбор клиентской статистики (shift+alt+s по дефолту)

Сообщение было отредактировано: 17 фев 21, 12:36
17 фев 21, 12:39    [22282167]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
drgdr
Member

Откуда:
Сообщений: 70
msLex
drgdr
пропущено...


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

Включить в SSMS перед выполнение запроса (который без into #t) сбор клиентской статистики (shift+alt+s по дефолту)


Сделал (только там shift+alt+s) и слегка не понял что он выдал: 1334110000 байт = 1,2ГБ???

К сообщению приложен файл. Размер - 26Kb
17 фев 21, 12:51    [22282180]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3971
drgdr
msLex
пропущено...


Выполняется на сервере, а результаты передаются и отображаются на клиенте.

Судя по названию таблицы, там вполне могут быть поля больших размеров.


Для нивелирования влияния клиентского хоста и сетью между ним и сервером, выполните

SELECT *
INTO #t
FROM [dbo].[Messages]


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


+ это ваша фраза
"С одной машины запрос выполняется 80 секунд, с другой - 12."

Как понять резкое увеличение? или вас не колебает, выравнялось и х.с.н ?
17 фев 21, 12:51    [22282181]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
msLex
Member

Откуда:
Сообщений: 8720
Ролг Хупин

Как понять резкое увеличение?

Тем, что данные нужно не только прочитать но еще и сохранить, пусть и в памяти.

А с учетом 1.2ГБ это вполне реально.
17 фев 21, 12:56    [22282188]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
drgdr
Member

Откуда:
Сообщений: 70
Ролг Хупин
drgdr
пропущено...


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


+ это ваша фраза
"С одной машины запрос выполняется 80 секунд, с другой - 12."

Как понять резкое увеличение? или вас не колебает, выравнялось и х.с.н ?


Вообще-то это пока проект, и такой большой запрос с выводом всех полей на рабочей базе делать не собираемся. Я предполагаю, что это из-за ширины канала. Поэтому и хотел бы узнать размер передаваемых данных.
17 фев 21, 12:57    [22282190]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
msLex
Member

Откуда:
Сообщений: 8720
drgdr
Сделал (только там shift+alt+s) и слегка не понял что он выдал: 1334110000 байт = 1,2ГБ???


С учетом 3-х ntext полей, вполне реально


ну и для проверки

exec sp_spaceused '[dbo].[Messages]'


и

select sum(datalength(MsgBody)), sum(datalength(RowMessage)), sum(datalength(PlainBody))
from  [dbo].[Messages]  
17 фев 21, 13:00    [22282198]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
msLex
Member

Откуда:
Сообщений: 8720
drgdr
Вообще-то это пока проект

Тогда еще есть возможность отказаться от ntext в пользу nvarchar(max)
17 фев 21, 13:06    [22282211]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
drgdr
Member

Откуда:
Сообщений: 70
msLex
drgdr
Сделал (только там shift+alt+s) и слегка не понял что он выдал: 1334110000 байт = 1,2ГБ???


С учетом 3-х ntext полей, вполне реально


ну и для проверки

exec sp_spaceused '[dbo].[Messages]'


и

select sum(datalength(MsgBody)), sum(datalength(RowMessage)), sum(datalength(PlainBody))
from  [dbo].[Messages]  


К сообщению приложен файл. Размер - 5Kb
17 фев 21, 14:04    [22282275]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
drgdr
Member

Откуда:
Сообщений: 70
msLex
drgdr
Сделал (только там shift+alt+s) и слегка не понял что он выдал: 1334110000 байт = 1,2ГБ???


С учетом 3-х ntext полей, вполне реально


ну и для проверки

exec sp_spaceused '[dbo].[Messages]'


и

select sum(datalength(MsgBody)), sum(datalength(RowMessage)), sum(datalength(PlainBody))
from  [dbo].[Messages]  


К сообщению приложен файл. Размер - 4Kb
17 фев 21, 14:04    [22282276]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
drgdr
Member

Откуда:
Сообщений: 70
msLex,

спасибо за дельный совет. большая разница в размере?
17 фев 21, 14:05    [22282278]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
msLex
Member

Откуда:
Сообщений: 8720
drgdr,
Что и требовалось доказать

Таблица у вас "весит" 1.4 GB, из низ почти 1.3GB это MsgBody и PlainBody
17 фев 21, 14:07    [22282279]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
msLex
Member

Откуда:
Сообщений: 8720
drgdr
msLex,

спасибо за дельный совет. большая разница в размере?

Между ntext и nvarchar(max)?
Нет.
1.4 ГБ текста это 1.4 ГБ текста.
17 фев 21, 14:10    [22282282]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
Sybex
Member

Откуда: Moscow
Сообщений: 117
Просто ntext - это устаревший тип данных, оставленный только для обратной совместимости. Вместо него рекомендуется использовать nvarchar(MAX). Типы text/ntext могут привнести лишней головной боли при работе с ними, т.к. они не поддерживаются частью функций. Короче, если у вас есть возможность от них избавиться, лучше сделайте это как можно скорее.
17 фев 21, 16:18    [22282360]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1812
drgdr,

Какая еще версия сервера?
Судя по картинке, у вас еще используются
ntext, image, datetime - эти типы признаны устаревшими и вместо них предпочтительно использовать nvarchar(max), varbinary(max), datetime2
17 фев 21, 17:17    [22282379]     Ответить | Цитировать Сообщить модератору
 Re: Запрос SSMS выполняется разное время  [new]
drgdr
Member

Откуда:
Сообщений: 70
X-Cite,
2019
15.0.2070.41
18 фев 21, 15:08    [22282884]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить