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

 

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

XQuery and Performance

Îåêßíçóå áðü ôï ìÝëïò egeorge. Τελευταία δημοσίευση από το μέλος KelMan στις 05-02-2007, 00:41. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  05-02-2007, 00:14 24505

    XQuery and Performance

    Για τις ανάγκες διασύνδεσης 2 εφαρμογών, καταλήξαμε στην δημιουργία ενός XML αρχείου το οποίο φορτώνετε σε SQL 2005 και συγκεκριμένα σε ένα XML πεδίο. Πάνω στο XML αυτό εκτελούνται XQueries, διαβάζοντας κάθε φορά τα επιθυμητά δεδομένα. Σε παλιότερη εφαρμογή με Infopath το μοντέλο αυτό είχε λειτουργήσει καλά, αυτό όμως που κάνει την διαφορά αυτή την φορά ήταν ότι το μέγεθος των δεδομένων αυξάνει όλο και περισσότερο (πάνω από 1000 entity/XML) κάνοντας την εκτέλεση των XQuery όλο και πιο αργή. Πως μπορώ να βελτιώσω το performance της εκτέλεσης των XQuery. Πριν καταφύγω στην λύση να σπάω το XML σε κάποιο άλλο schema στην βάση, θα ήθελα να ξέρω αν υπάρχουν λύσεις με βάση την υπάρχουσα υλοποίηση.

    Ευχαριστώ.


    Θρυλικός Προγραμματιστής
    Δημοσίευση στην κατηγορία:
  •  05-02-2007, 00:41 24506 σε απάντηση της 24505

    Απ:XQuery and Performance

    Τα XML πεδία αποθηκεύονται εσωτερικά ως BLOBs προκειμένου να είναι πιο eficient η αποθήκευσή τους όπως για παράδειγμα να συμπιέζονται σε ένα βαθμό. Από την άλλη μεριά όμως τα BLOBs έχουν ως side-effect ακριβώς το πρόβλημά σου, να είναι αργά τα XQueries όταν μεγαλώνει ο όγκος του πεδίου.

    Για να βελτιωθεί η αναζήτηση στα XML πεδία, μπορείς να ορίσεις ένα primary XML index και τρία secondary. Το primary απλά "σπάει" την τιμή από κάθε XML πεδίο σε tags, attributes, paths, κλπ. Τα secondary XML indexes παίζουν πάνω σε πεδία που έχουν ήδη ορισμένο το primary και κάθε ένα από αυτά βοηθάει συγκεκριμένους τύπους από XQueries. Υπάρχει το PATH secondary XML index που βοηθά queries με XPath expressions. To VALUE secondary XML index που βοηθάει για queries που αναζητούν τιμές από nodes μέσα στο XML doc και τέλος το PROPERTY secondary XML index που βοηθά queries που αναζητούν object properties από το XML doc.

    Βέβαια, there is no such thing as free lunch. Η συντήρηση αυτών των indexes κοστίζει και γι αυτό απαιτείται σύνεση. Ειδικότερα τα secondary τα δημιουργούμε μόνο όταν τρέχουμε τα ανάλογα queries για τα οποία προορίζονται, δηλαδή δεν είναι καλή πρακτική να τα δημιουργήσουμε εκ των προτέρων μην τύχει και τρέξουμε κάποιο ad-hoc query.

    Στα Books On Line θα βρεις αρκετό υλικό για τα XML Indexes.


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