نتيجة SQL كبيرة عبر VPN: أين تنتظر الصفوف
تنتظر نتيجة SQL كبيرة في ثلاثة مواضع: مخازن الخادم المؤقتة ومسار VPN والعميل. قِس كل مرحلة قبل تغيير عرض النطاق أو تشغيل الضغط.
قد تنتهي الاستعلامات في أجزاء من الثانية ومع ذلك تستغرق دقائق للوصول إلى حاسوب محمول عبر 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';
اقرأ العداد أثناء تشغيل الحمل المحدود، لا بعد ساعة خاملة، لأن العدادات التراكمية تخلط كل جلسة منذ بدء المثيل. قارن الفرق خلال التشغيل بدل الإجمالي مدى العمر. الفرق المتنامي أثناء النقل يضيّق السؤال إلى الاستهلاك أو التسليم.
ضع العميلين على الساعة نفسها
شغّل حملاً محدوداً من عميل قريب من قاعدة البيانات ومن العميل البعيد. أبقِ الاستعلام والمعاملات وحجم النتيجة وإعدادات الاتصال متطابقة. استخدم القياس نفسه على الجانبين، لأن زمن تنفيذ الخادم وزمن عرض الشبكة وزمن التصدير ثلاث ساعات مختلفة. مقارنة رقم من جانب الخادم بمؤقت تصدير من جانب العميل تنتج استنتاجاً لا يمكن اختباره.
عندما يبدو المسار مسؤولاً، اجعل مسؤول الشبكة يراقب الفقد وإعادة الإرسال والإنتاجية المحققة لذلك التدفق تحديداً أثناء النقل. قد يستخدم اختبار سرعة عام مساراً أو نقطة نهاية أو نمط تزامن آخر. طلب صغير ناجح لا يقول الكثير عن نقل نتيجة مستمر.
قلّل البايتات قبل لوم المسار
الترشيح والتجميع واختيار الأعمدة اللازمة فقط تقلّل حجم النقل والعمل الذي يقوم به العميل مع كل صف. حافظ على النتيجة المقصودة، لأن التقرير قد يحتاج تفصيلاً لا يوفره ملخص على الشاشة.
للتصديرات القابلة للتكرار، يمكن لموقع تنفيذ معتمد قرب قاعدة البيانات أن يكتب مخرجات محددة تُسلَّم بعد ذلك مرة واحدة. هذا يغيّر سير العمل وضوابط الوصول فيه، وليس إذناً بترك تفريغ غير مقيد على مضيف مشترك.
الضغط ليس الإصلاح الافتراضي. يعتمد الدعم والأمان على البروتوكول والنشر الفعليين، وقد يزيد تدفق مضغوط يفك ضغطه العميل ببطء التجربة سوءاً. قِس المرحلة أولاً، ثم اختر تغييراً مدعوماً لتلك المرحلة.