VPN üzərindən böyük SQL nəticəsi: sətirlər harada gözləyir
Böyük SQL nəticəsi üç yerdə gözləyir: server buferləri, VPN yolu və müştəri. Bant genişliyini dəyişməzdən və ya sıxlaşdırmanı açmazdan əvvəl hər mərhələni ölçün.
Sorğular millisaniyələr içində bitə və yenə də VPN üzərindən noutbuka çatmaq üçün dəqiqələr çəkə bilər. Server sətirləri buferlərə yazır, bağlantı onları daşıyır, müştəri isə onları istehlak edir və bu mərhələlər ardıcıl deyil, üst-üstə düşür. Onlardan hər hansı biri hədd ola bilər. Bant genişliyini dəyişməzdən və ya sıxlaşdırmanı aktivləşdirməzdən əvvəl həqiqətən gözləyən mərhələni tapın.
Üç mərhələ, bir saniyəölçən
Taymeri fərqli məna daşıyan iki rəqəmə ayırın: ilk sətrin əlçatan olduğu an və son sətrin istehlak edildiyi an. İlk səhifəni çəkən cədvəl yalnız sorğunun başladığını sübut edir. Tam nəticə vaxtı istifadəçinin ixrac edərkən və ya sona qədər sürüşdürərkən yaşadığı şeydir.
Hər iki rəqəmi sorğu mətni, parametrlər və bağlantı parametrləri ilə birlikdə qeyd edin. Bu kontekst olmadan müqayisə iki fərqli iş arasındadır, iki yer arasında deyil.
Şəbəkədən əvvəl gözləməni oxuyun
SQL Server nəticə sətirlərini müştərinin götürməsi üçün çıxış buferlərinə yazır və yavaş istehlak edən müştəri serveri həmin göndərişdə gözləməyə məcbur edə bilər. Gözləmə növü ASYNC_NETWORK_IO-dur və Microsoft-un sorun gidərmə qeydi səbəblər arasında böyük nəticələri və müştəri tərəfində emalı sadalayır. Gözləmə göndərmə yolunun bloklandığını deyir, səbəbini deyil.
Yavaş VPN təsir edə bilər, lakin hər sətri formatlayan, fayla yazan və ya partiyalar arasında fasilə verən müştəri də təsir edə bilər. Gözləmə adı növbəti ölçməyə işarədir, əlaqə haqqında hökm deyil.
SELECT wait_type, wait_time_ms
FROM sys.dm_os_wait_stats
WHERE wait_type = 'ASYNC_NETWORK_IO';
Sayğacı boş saatdan sonra deyil, məhdud iş yükü işləyərkən oxuyun, çünki yığılmış sayğaclar instansiya başladığından bəri hər sessiyanı qarışdırır. Ümumi ömür cəmi yerinə iş yükü boyunca fərqi müqayisə edin. Ötürmə zamanı artan fərq sualı istehlaka və ya çatdırılmaya daraldır.
Hər iki müştərini eyni saatda saxlayın
Məhdud iş yükünü verilənlər bazasına yaxın müştəridən və uzaq müştəridən işlədin. Sorğunu, parametrləri, nəticə ölçüsünü və bağlantı parametrlərini eyni saxlayın. Hər iki tərəfdə eyni ölçmədən istifadə edin, çünki serverin icra vaxtı, cədvəlin göstərilmə vaxtı və ixrac vaxtı üç fərqli saatdır. Server tərəfindəki rəqəmi müştəri tərəfindəki ixrac taymeri ilə müqayisə etmək yoxlanıla bilməyən nəticə verir.
Yol günahkar görünəndə, ötürmə gedərkən şəbəkə sahibinə məhz həmin axın üzrə itki, yenidən ötürmə və əldə edilmiş ötürmə qabiliyyətini izləməyi tapşırın. Ümumi sürət testi başqa marşrut, son nöqtə və ya paralellik modeli istifadə edə bilər. Kiçik uğurlu sorğu davamlı nəticə ötürülməsi haqqında az şey deyir.
Yolu günahlandırmadan əvvəl baytları azaldın
Filtrləmə, aqreqasiya və yalnız lazımi sütunların seçilməsi həm ötürmə həcmini, həm də müştərinin hər sətirlə gördüyü işi azaldır. Nəzərdə tutulan nəticəni qoruyun, çünki hesabat ekrandakı xülasənin vermədiyi detala ehtiyac duya bilər.
Təkrarlanan ixraclar üçün verilənlər bazasına yaxın təsdiqlənmiş icra yeri müəyyən edilmiş çıxış yazıb onu bir dəfə çatdıra bilər. Bu, iş axınını və onun giriş nəzarətini dəyişir və paylaşılan hostda məhdudiyyətsiz dump saxlamaq üçün icazə deyil.
Sıxlaşdırma defolt düzəliş deyil. Dəstək və təhlükəsizlik faktiki protokoldan və yerləşdirmədən asılıdır və müştərinin yavaş açdığı sıxılmış axın təcrübəni pisləşdirə bilər. Əvvəlcə mərhələni ölçün, sonra həmin mərhələ üçün dəstəklənən dəyişiklik seçin.