Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Που είναι το Sorted View? OEO?

Îåêßíçóå áðü ôï ìÝëïò KelMan. Τελευταία δημοσίευση από το μέλος KelMan στις 19-05-2006, 08:17. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  18-05-2006, 23:57 12960

    Που είναι το Sorted View? OEO?

    Σε ένα παλιότερο post με τίτλο Sorted Tables ψάχναμε τον τρόπο με τον οποίο μπορούμε να έχουμε συνεχώς ταξινομημένα τα δεδομένα ενός πίνακα ώστε να μην χρειάζεται να προσθέτουμε ORDER BY στο τέλος κάθε query. Άσχετα με το πρακτικό ή όχι, σωστό ή λάθος, ανατρεπτικό ή όχι της υπόθεσης, το ενδιαφέρον βρίσκεται στο εξής:

    Μία από τις λύσεις είναι να χρησιμοποιηθεί ένα view το οποίο να είναι κάπως έτσι:

    CREATE VIEW V1 AS (SELECT TOP 100 PERCENT * FROM T1 ORDER BY COL1 ASC)

    Ωραία; Ωραία!

    Ε, λοιπόν, αν το δοκιμάσετε αυτό στον SQL Server 2005, πολύ απλά δεν θα παίξει. Ο λόγος είναι ότι ο query optimizer αναγνωρίζει το TOP 100 PERCENT ως μη απαραίτητο (μιας και επιστρέφει όλες τις εγγραφές) και το αφαιρεί από το execution plan!

    To ηθικό δίδαγμα είναι ότι καλό είναι να ακολουθούμε τη θεωρία (στη συγκεκριμένη περίπτωση πρόκειται για τη σχεσιακή, η οποία λέει ότι "ένα view δεν μπορεί να δίνει ταξινομημένα αποτελέσματα" - για την ακρίβεια το λέει κάπως διαφορετικά, δηλαδή ότι σε ένα σύνθετο SELECT statement μόνο το εξώτερο SELECT μπορεί να έχει ORDER BY clause)  για να αποφεύγουμε μελλοντικά προβλήματα που προκύπτουν από το πουθενά, όταν αποφασίζουμε να μετακινήσουμε την εφαρμογή μας σε ένα νέο περιβάλλον.


    Vir prudens non contra ventum mingit
  •  19-05-2006, 00:50 12964 σε απάντηση της 12960

    Απ: Που είναι το Sorted View? OEO?

    Μπουουου! Κι εγώ που πίστευα οτι (τοτε) ειχα βρει τη λύση!

    Μα καλά, ολοι σας έχετε βαλθεί να με "αδειάζετε" τώρα τελευταία :) (Καλά κανετε βεβαια) :)

    Παω πισω στη σπηλιά μου για να γράψω 1000 φορες "δεν θα δίνω περίεργες λύσεις οταν με ρωτάνε για SQL Server" :)


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  19-05-2006, 08:17 12975 σε απάντηση της 12964

    Απ: Που είναι το Sorted View? OEO?

    Σωτήρη μην κλαις (ταπ, ταπ, χάιδεμα στο κεφάλι)... Βασικά, δεν είναι και τόσο "περίεργη" λύση. Προτείνεται πολύ συχνά και θα την δεις να εμφανίζεται σε forums και newsgroups. Γι αυτό το λόγο άλλωστε έβαλα το post, ώστε να προφυλαχθούν όσοι την έχουν χρησιμοποιήσει...


    Vir prudens non contra ventum mingit
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems