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

Откуда:
Сообщений: 44
Уважаемые коллеги, ситуация вроде проста дальше некуда, но тем не менее прошу совета. Имеется удаленная база с таблицей с количеством записей чуть более 100000. Элементарный запрос с получением всех полей таблицы на хосте длится пару секунд, но при удаленном вызове (среда ADO.NET) время запроса растягивается: не поверите - на полчаса. Соединение клиента с хостом среднее, по крайней мере удаленный стол нормально работает, размер таблицы где то около 40 метров. При этом время как я понимаю затрачивается именно на обработку запроса на сервере т.к. профайлер показывает именно такую разницу между батч старт и комплетед. Может кто подскажет в какую сторону копать?
9 авг 11, 19:59    [11093901]     Ответить | Цитировать Сообщить модератору
 Re: Скорость получения данных из таблицы...  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Vugar_Miri,

Во первых планы выполнения запросов, во вторых у записей размеры есть * 100000 / скрость передачи и обаробтки на клиенте. А теперб вопрос в студию - зачем всё это в клиента тянуть ?
9 авг 11, 20:03    [11093909]     Ответить | Цитировать Сообщить модератору
 Re: Скорость получения данных из таблицы...  [new]
Vugar_Miri
Member

Откуда:
Сообщений: 44
План выполнения обычный: на 100% по индексу, а тянуть на клиента надо потому, что клиент по сути анализирует подобные таблицы из разных баз и при необходимости по определенным полям синхронизирует. Могу предвидеть предложения по репликации, но сорри в данном случае это не приемлемо, так или иначе есть практический и академический интерес в решение данной проблемы.
9 авг 11, 20:08    [11093922]     Ответить | Цитировать Сообщить модератору
 Re: Скорость получения данных из таблицы...  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Vugar_Miri
План выполнения обычный: на 100% по индексу.

Тоесть вы посмотрели и в этом убедились. Тогда статистику выполнения запроса на сервере и на клиенте покажите ( SET STATISTICS IO ON ; SET STATISTICS TIME ON)
9 авг 11, 20:16    [11093937]     Ответить | Цитировать Сообщить модератору
 Re: Скорость получения данных из таблицы...  [new]
Шыфл
Member

Откуда: Прага
Сообщений: 776
Vugar_Miri,

а сколько же длиться подобный запрос из удалённой SQL Management Studio? Если те же "полчаса", то ADO.NET ни при чём, и всё дело в размере/скорости...

п.с. Клиент-сервер он на то и есть, чтобы клиент работал только с "нужными" данными. Рискну предположить, что из 100000 записей не все нужные
9 авг 11, 20:21    [11093945]     Ответить | Цитировать Сообщить модератору
 Re: Скорость получения данных из таблицы...  [new]
Vugar_Miri
Member

Откуда:
Сообщений: 44
Сорри удаленка в дауне уже, не обессудьте, вернемся завтра к этому вопросу?
9 авг 11, 20:22    [11093948]     Ответить | Цитировать Сообщить модератору
 Re: Скорость получения данных из таблицы...  [new]
Vugar_Miri
Member

Откуда:
Сообщений: 44
Шыфл,

Да нет, именно все должны быть проанализированы.
9 авг 11, 20:23    [11093952]     Ответить | Цитировать Сообщить модератору
 Re: Скорость получения данных из таблицы...  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Vugar_Miri
Шыфл,

Да нет, именно все должны быть проанализированы.


не нужно все , нужно изменённые только. Добавьте поле в таблицу(ы) с типом Rowversion и сравниваете только те записи которые выше предыдущего макимального значения сравнения.
9 авг 11, 20:29    [11093970]     Ответить | Цитировать Сообщить модератору
 Re: Скорость получения данных из таблицы...  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3265
Vugar_Miri
100000



(строк обработано: 100000)
Таблица "". Число просмотров 1, логических чтений 1673, физических чтений 0,
упреждающих чтений 0, lob логических чтений 192199, lob физических чтений 3813, lob упреждающих чтений 0.

Время выполнения SQL Server:
Время ЦП = 672 мс, истекшее время = 117084 мс.
Вот где-то так 256 КБ/с с удалённого хоста через VPN/
9 авг 11, 20:36    [11093992]     Ответить | Цитировать Сообщить модератору
 Re: Скорость получения данных из таблицы...  [new]
Шыфл
Member

Откуда: Прага
Сообщений: 776
Тут всё от данных зависит.
SQL Server Execution Times:
CPU time = 750 ms, elapsed time = 75428 ms.
(100000 row(s) affected)


SQL Server Execution Times:
CPU time = 1406 ms, elapsed time = 172578 ms.
(100000 row(s) affected)

Это с одного и того же сервера, причём похожие таблицы...
9 авг 11, 21:12    [11094117]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить