INF: Συνήθεις ερωτήσεις - SQL Server 2000 - μεταβλητές πίνακα

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 305977 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

Αυτό το άρθρο απαντά σε ορισμένες από τις συνήθεις ερωτήσεις (FAQ) σχετικά με τις μεταβλητές του πίνακα που εισάγονται στον SQL Server 2000.

Για να διαβάσετε το SQL Server Books Online περιγραφή του πίνακα μεταβλητές, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
.aspx http://msdn2.Microsoft.com/en-us/library/aa260638 (SQL.80)

Περισσότερες πληροφορίες

Ε1: Γιατί μεταβλητές πίνακα θεσπίστηκαν όταν προσωρινούς πίνακες ήταν ήδη διαθέσιμα;

A1: Μεταβλητές πίνακα έχουν τα ακόλουθα πλεονεκτήματα έναντι προσωρινά πίνακες:
  • Όπως αναφέρεται στο το SQL Server Books Online "Πίνακες" το άρθρο, μεταβλητές πίνακα, όπως οι τοπικές μεταβλητές, έχουν καλά καθορισμένο εύρος στο στο τέλος του οποίου τους έχει καταργηθεί αυτόματα.
  • Μεταβλητές πίνακα έχει ως αποτέλεσμα λιγότερα εναναμεταγλωττίσεων από μια αποθηκευμένη διαδικασία σε σύγκριση με προσωρινούς πίνακες.
  • Συναλλαγές που αφορούν πίνακα τελευταία μεταβλητές μόνο για το διάρκεια μιας ενημερωμένης έκδοσης στη μεταβλητή πίνακα. Ως εκ τούτου, απαιτούν μεταβλητές πίνακα λιγότερο κλείδωμα και καταγραφή των αντίστοιχων πόρων. Επειδή οι μεταβλητές πίνακα έχουν περιορισμένη εμβέλεια και δεν αποτελούν μέρος της βάσης δεδομένων μόνιμες, συναλλαγή αλλοιώσεων μέσω επαναφοράς δεν επηρεάζει τους.
Q2: Τι σημαίνει λέγοντας ότι μεταβλητές πίνακα θα οδηγήσει σε λιγότερες εναναμεταγλωττίσεων μιας αποθηκευμένης διαδικασίας από όταν χρησιμοποιούνται προσωρινούς πίνακες;

A2: Στο ακόλουθο άρθρο περιγράφει ορισμένα αίτια όταν αποθηκεύονται διαδικασίες μεταγλωττιστούν ξανά:

243586 Αντιμετώπιση προβλημάτων επανάληψη μεταγλώττισης αποθηκευμένης διαδικασίας
Το εναναμεταγλωττίσεων"λόγω ορισμένων προσωρινό πίνακα Οι λειτουργίες"ενότητα παραθέτει επίσης ορισμένες απαιτήσεις για την αποφυγή όπως ένα Επανάληψη μεταγλώττισης λόγω προσωρινούς πίνακες. Αυτοί οι περιορισμοί δεν ισχύουν για μεταβλητές πίνακα.

Μεταβλητές πίνακα είναι εντελώς απομονωμένο για τη δέσμη που δημιουργεί τους δεν είναι ανάλυση ' πρέπει να προκύψει όταν μια πρόταση CREATE ή ALTER πρόταση λαμβάνει χώρα, που ενδέχεται να παρουσιαστεί με έναν προσωρινό πίνακα. Προσωρινούς πίνακες χρειάζεστε αυτό είστε ανάλυση ' έτσι ώστε ο πίνακας μπορεί να γίνεται αναφορά από μια ένθετη αποθηκεύονται , please escalate the customer using either MTSHOT or your local HOT escalation procedure. Μεταβλητές πίνακα αποφύγετε τελείως ώστε να χρησιμοποιήσετε αποθηκευμένες διαδικασίες σχέδιο που ήδη έχει μεταγλωττιστεί, εξοικονομώντας πόρους για την επεξεργασία του αποθηκευμένου , please escalate the customer using either MTSHOT or your local HOT escalation procedure.

Τ3: Τι είναι ορισμένα από τα μειονεκτήματα των μεταβλητών πίνακα;

A3: Αυτά είναι μερικά από τα μειονεκτήματα σε σύγκριση με προσωρινούς πίνακες:
  • Είναι δυνατό να δημιουργηθούν μη συγκεντρωτικά ευρετήρια στον πίνακα μεταβλητών, εκτός από τα ευρετήρια συστήματος που δημιουργείται για ένα ΠΡΩΤΕΎΟΝ ή το ΜΟΝΑΔΙΚΌ περιορισμός. Που μπορούν να επηρεάσουν τις επιδόσεις ερωτημάτων σε σύγκριση με ένα προσωρινός πίνακας με μη συγκεντρωτικά ευρετήρια.
  • Μεταβλητές πίνακα δεν διατηρούν στατιστικά στοιχεία, όπως προσωρινή να πίνακες. Στατιστικά στοιχεία δεν μπορούν να δημιουργηθούν στον πίνακα μεταβλητών μέσω αυτόματης Δημιουργία ή χρησιμοποιώντας την εντολή ΔΗΜΙΟΥΡΓΊΑ ΣΤΑΤΙΣΤΙΚΏΝ. Επομένως, για μιγαδικός ερωτήματα σε μεγάλους πίνακες, η έλλειψη των στατιστικών μπορεί να στην αποτροπή της βελτιστοποίησης για να Προσδιορίστε το καλύτερο σχέδιο για ένα ερώτημα, έτσι που επηρεάζουν τις επιδόσεις του που το ερώτημα.
  • Τον ορισμό του πίνακα δεν μπορεί να αλλάξει μετά την αρχική ΔΗΛΏΣΤΕ τη δήλωση.
  • Μεταβλητές πίνακες δεν μπορούν να χρησιμοποιηθούν σε ένα EXEC εισαγωγή ή ΕΠΙΛΟΓΉ ΣΤΗ δήλωση.
  • ΕΛΈΓΞΤΕ τους περιορισμούς, ΠΡΟΕΠΙΛΕΓΜΈΝΕΣ τιμές και υπολογιζόμενες στήλες σε η δήλωση τύπου πίνακα δεν είναι δυνατό να καλέσετε συναρτήσεις οριζόμενες από το χρήστη.
  • Δεν μπορείτε να χρησιμοποιήσετε την πρόταση EXEC ή το sp_executesql αποθηκευμένη διαδικασία για την εκτέλεση ενός δυναμικού ερωτήματος SQL Server που αναφέρεται ένα μεταβλητή πίνακα, εάν η μεταβλητή πίνακας δημιουργήθηκε έξω από τη δήλωση EXEC ή το sp_executesql αποθηκευμένη διαδικασία. Επειδή οι μεταβλητές πίνακα μπορούν να αναφέρονται σε τους τοπική εμβέλεια μόνο, μια πρόταση EXEC και sp_executesql αποθηκευμένη διαδικασία θα ήταν εκτός του πεδίου του πίνακα μεταβλητή. Ωστόσο, μπορείτε να δημιουργήσετε τη μεταβλητή πίνακα και να εκτελέσετε οποιαδήποτε επεξεργασία στο εσωτερικό του EXEC πρόταση ή το sp_executesql αποθηκευμένης διαδικασίας διότι τότε είναι η τοπική εμβέλεια μεταβλητών πίνακα η πρόταση EXEC ή το sp_executesql αποθηκευμένη διαδικασία.
Q4: Είναι μεταβλητές πίνακα μόνο μνήμη δομές που διασφαλίζονται καλύτερη απόδοση σε σύγκριση με προσωρινή ή μόνιμη πίνακες, επειδή αυτά διατηρούνται σε μια βάση δεδομένων που βρίσκεται στο φυσικό δίσκο;

A4: Μια μεταβλητή πίνακα δεν είναι μια δομή μόνο μνήμη. Επειδή ένας πίνακας μεταβλητή μπορεί να κρατήστε περισσότερα δεδομένα από όσα μπορούν να χωρέσουν στη μνήμη, θα πρέπει να έχετε μια θέση ο δίσκος για την αποθήκευση δεδομένων. Μεταβλητές πίνακα δημιουργούνται σε παρόμοια με προσωρινούς πίνακες στη βάση δεδομένων tempdb . Εάν η διαθέσιμη μνήμη και τα δύο πίνακα μεταβλητών και η δημιουργία και επεξεργασία προσωρινούς πίνακες κατά τη διάρκεια της μνήμη (cache δεδομένων).

Ε5: Πρέπει να χρησιμοποιήσετε μεταβλητές πίνακα αντί για προσωρινούς πίνακες;

A5: Η απάντηση εξαρτάται από τους τρεις αυτούς παράγοντες:
  • Τον αριθμό των γραμμών που έχουν εισαχθεί για το στον πίνακα.
  • Ο αριθμός των εναναμεταγλωττίσεων το ερώτημα αποθηκεύεται από το.
  • Τον τύπο των ερωτημάτων και την εξάρτηση από τα ευρετήρια και Στατιστικά στοιχεία για τις επιδόσεις.
Σε ορισμένες περιπτώσεις, η διάσπαση μιας αποθηκευμένης διαδικασίας με προσωρινά πίνακες σε μικρότερες αποθηκευμένες διαδικασίες έτσι ότι η επανάληψη μεταγλώττισης πραγματοποιείται μικρότερες μονάδες είναι χρήσιμες.

Σε γενικές γραμμές, μπορείτε να χρησιμοποιήσετε μεταβλητές πίνακα όποτε είναι δυνατόν, εκτός εάν υπάρχει σημαντική όγκος των δεδομένων και δεν υπάρχει είναι η επανειλημμένη χρήση του πίνακα. Στην περίπτωση αυτή, μπορείτε να δημιουργήσετε ευρετήρια για τα προσωρινός πίνακας για να αυξήσετε την απόδοση του ερωτήματος. Ωστόσο, μπορεί να είναι κάθε σενάριο διαφορετικά. Η Microsoft συνιστά να ελέγξετε εάν υπάρχουν περισσότερες μεταβλητές πίνακα χρήσιμο από προσωρινούς πίνακες για ένα συγκεκριμένο ερώτημα ή αποθηκευμένη , please escalate the customer using either MTSHOT or your local HOT escalation procedure.

Ιδιότητες

Αναγν. άρθρου: 305977 - Τελευταία αναθεώρηση: Πέμπτη, 30 Μαΐου 2013 - Αναθεώρηση: 3.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft SQL Server 2000 Standard Edition
Λέξεις-κλειδιά: 
kbinfo kbmt KB305977 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: 305977

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com