Τα ερωτήματα μπορούν να τελειώσουν σε χιλιοστά του δευτερολέπτου και παρόλα αυτά να χρειάζονται λεπτά για να φτάσουν σε φορητό υπολογιστή μέσω VPN. Ο διακομιστής γράφει γραμμές σε buffer, η σύνδεση τις μεταφέρει και ο πελάτης τις καταναλώνει, και αυτά τα στάδια επικαλύπτονται αντί να εκτελούνται διαδοχικά. Οποιοδήποτε από αυτά μπορεί να γίνει το όριο. Βρείτε το στάδιο που πραγματικά περιμένει πριν αλλάξετε εύρος ζώνης ή ενεργοποιήσετε συμπίεση.

Τρία στάδια, ένα χρονόμετρο

Χωρίστε το χρονόμετρο σε δύο αριθμούς με διαφορετική σημασία: τη στιγμή που η πρώτη γραμμή είναι διαθέσιμη και τη στιγμή που η τελευταία γραμμή έχει καταναλωθεί. Ένα πλέγμα που ζωγραφίζει την πρώτη σελίδα αποδεικνύει μόνο ότι το ερώτημα ξεκίνησε. Ο χρόνος του πλήρους αποτελέσματος είναι αυτό που βιώνει ο χρήστης όταν εξάγει ή κάνει κύλιση στο τέλος.

Καταγράψτε και τους δύο αριθμούς μαζί με το κείμενο του ερωτήματος, τις παραμέτρους και τις ρυθμίσεις σύνδεσης. Χωρίς αυτό το πλαίσιο, η σύγκριση γίνεται μεταξύ δύο διαφορετικών εργασιών, όχι δύο τοποθεσιών.

Διαβάστε την αναμονή πριν από το δίκτυο

Ο SQL Server γράφει τις γραμμές του αποτελέσματος σε buffer εξόδου για να τις παραλάβει ο πελάτης, και ένας πελάτης που καταναλώνει αργά μπορεί να κάνει τον διακομιστή να περιμένει σε αυτή την αποστολή. Ο τύπος αναμονής είναι ASYNC_NETWORK_IO, και η σημείωση αντιμετώπισης προβλημάτων της Microsoft αναφέρει μεγάλα αποτελέσματα και επεξεργασία στην πλευρά του πελάτη μεταξύ των αιτιών. Η αναμονή λέει ότι η διαδρομή αποστολής είναι αποκλεισμένη, όχι γιατί.

Ένα αργό VPN μπορεί να συμβάλει, αλλά και ένας πελάτης που μορφοποιεί κάθε γραμμή, γράφει σε αρχείο ή κάνει παύσεις μεταξύ παρτίδων. Το όνομα της αναμονής είναι δείκτης για την επόμενη μέτρηση, όχι ετυμηγορία για τη ζεύξη.

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

Διαβάστε τον μετρητή όσο εκτελείται το περιορισμένο φορτίο, όχι μετά από μια ώρα αδράνειας, επειδή οι αθροιστικοί μετρητές αναμειγνύουν κάθε συνεδρία από την εκκίνηση της παρουσίας. Συγκρίνετε το δέλτα κατά τη διάρκεια της εκτέλεσης αντί για το συνολικό άθροισμα ζωής. Ένα αυξανόμενο δέλτα κατά τη μεταφορά περιορίζει το ερώτημα στην κατανάλωση ή την παράδοση.

Βάλτε και τους δύο πελάτες στο ίδιο ρολόι

Εκτελέστε ένα περιορισμένο φορτίο από έναν πελάτη κοντά στη βάση δεδομένων και από τον απομακρυσμένο πελάτη. Κρατήστε το ερώτημα, τις παραμέτρους, το μέγεθος του αποτελέσματος και τις ρυθμίσεις σύνδεσης ίδια. Χρησιμοποιήστε την ίδια μέτρηση και στις δύο πλευρές, επειδή ο χρόνος εκτέλεσης του διακομιστή, ο χρόνος εμφάνισης του πλέγματος και ο χρόνος εξαγωγής είναι τρία διαφορετικά ρολόγια. Η σύγκριση ενός αριθμού από την πλευρά του διακομιστή με ένα χρονόμετρο εξαγωγής στην πλευρά του πελάτη παράγει ένα συμπέρασμα που δεν μπορεί να ελεγχθεί.

Όταν η διαδρομή φαίνεται υπεύθυνη, ζητήστε από τον ιδιοκτήτη του δικτύου να παρακολουθεί απώλειες, επαναμεταδόσεις και επιτευχθείσα απόδοση για τη συγκεκριμένη ροή όσο διαρκεί η μεταφορά. Μια γενική δοκιμή ταχύτητας μπορεί να χρησιμοποιεί άλλη διαδρομή, τελικό σημείο ή μοτίβο ταυτοχρονισμού. Ένα μικρό επιτυχές αίτημα λέει λίγα για μια συνεχή μεταφορά αποτελέσματος.

Κόψτε bytes πριν κατηγορήσετε τη διαδρομή

Το φιλτράρισμα, η συνάθροιση και η επιλογή μόνο των απαραίτητων στηλών μειώνουν και τον όγκο μεταφοράς και την εργασία που κάνει ο πελάτης με κάθε γραμμή. Διατηρήστε το επιδιωκόμενο αποτέλεσμα, επειδή μια αναφορά μπορεί να χρειάζεται λεπτομέρεια που δεν έχει μια σύνοψη στην οθόνη.

Για επαναλήψιμες εξαγωγές, μια εγκεκριμένη θέση εκτέλεσης κοντά στη βάση δεδομένων μπορεί να γράψει καθορισμένη έξοδο που στη συνέχεια παραδίδεται μία φορά. Αυτό αλλάζει τη ροή εργασίας και τους ελέγχους πρόσβασής της, και δεν είναι άδεια να αφήσετε έναν απεριόριστο dump σε κοινόχρηστο κεντρικό υπολογιστή.

Η συμπίεση δεν είναι η προεπιλεγμένη επισκευή. Η υποστήριξη και η ασφάλεια εξαρτώνται από το πραγματικό πρωτόκολλο και την ανάπτυξη, και μια συμπιεσμένη ροή που ο πελάτης αποσυμπιέζει αργά μπορεί να χειροτερέψει την εμπειρία. Μετρήστε πρώτα το στάδιο και μετά επιλέξτε μια υποστηριζόμενη αλλαγή για αυτό το στάδιο.

Σχετικά άρθρα