Барањата можат да завршат за милисекунди и сепак да траат минути за да стигнат до преносен компјутер преку VPN. Серверот пишува редови во бафери, врската ги пренесува, а клиентот ги троши, и овие фази се преклопуваат наместо да се одвиваат последователно. Секоја од нив може да стане ограничување. Најдете ја фазата што навистина чека пред да го промените опсегот или да вклучите компресија.

Три фази, еден хронометар

Поделете го тајмерот на два броја со различно значење: моментот кога првиот ред е достапен и моментот кога последниот ред е потрошен. Мрежата што ја црта првата страница докажува само дека барањето започнало. Времето на целосниот резултат е она што корисникот го доживува кога извезува или се движи до крајот.

Запишете ги двата броја заедно со текстот на барањето, параметрите и поставките за врска. Без тој контекст споредбата е меѓу две различни задачи, а не меѓу две локации.

Прочитајте го чекањето пред мрежата

SQL Server ги пишува редовите на резултатот во излезни бафери за клиентот да ги земе, и клиент што троши бавно може да го натера серверот да чека на тоа испраќање. Типот на чекање е ASYNC_NETWORK_IO, и белешката на Microsoft за решавање проблеми ги наведува големите резултати и обработката на страната на клиентот меѓу причините. Чекањето кажува дека патеката на испраќање е блокирана, а не зошто.

Бавна VPN може да придонесе, но и клиент што го форматира секој ред, пишува во датотека или прави паузи меѓу сериите. Името на чекањето е показател за следното мерење, а не пресуда за врската.

SELECT wait_type, wait_time_ms
FROM sys.dm_os_wait_stats
WHERE wait_type = 'ASYNC_NETWORK_IO';

Читајте го бројачот додека работи ограничениот товар, а не по празен час, бидејќи кумулативните бројачи ја мешаат секоја сесија од стартувањето на примерокот. Споредете ја разликата во текот на извршувањето, а не вкупниот збир за целиот животен век. Растечката разлика за време на преносот го стеснува прашањето на потрошувачка или достава.

Ставете ги двата клиенти на ист часовник

Извршете ограничен товар од клиент близу базата на податоци и од оддалечениот клиент. Одржувајте ги барањето, параметрите, големината на резултатот и поставките за врска идентични. Користете го истото мерење на двете страни, бидејќи времето на извршување на серверот, времето на прикажување на мрежата и времето на извоз се три различни часовници. Споредувањето број од страната на серверот со тајмер за извоз од страната на клиентот дава заклучок што не може да се провери.

Кога патеката изгледа одговорна, побарајте од сопственикот на мрежата да ги следи загубите, повторните преноси и постигнатиот проток точно за тој тек додека трае преносот. Општ тест за брзина може да користи друга рута, крајна точка или модел на паралелизам. Малку успешно барање малку кажува за постојан пренос на резултат.

Намалете ги бајтите пред да ја обвините патеката

Филтрирањето, агрегацијата и изборот само на потребните колони го намалуваат обемот на пренос и работата што клиентот ја врши со секој ред. Зачувајте го предвидениот резултат, бидејќи извештајот може да бара детал што го нема во резимето на екранот.

За повторливи извезувања, одобрена локација за извршување близу базата на податоци може да запише дефиниран излез што потоа се доставува еднаш. Тоа го менува работниот тек и неговите контроли за пристап, и не е дозвола да оставите неограничен исказ на споделен домаќин.

Компресијата не е стандардно решение. Поддршката и безбедноста зависат од вистинскиот протокол и распоредување, а компресиран тек што клиентот бавно го отпакува може да го влоши искуството. Прво измерете ја фазата, потоа изберете поддржана промена за таа фаза.

Поврзани статии