Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Εντωμεταξύ το link που παραθέτει ο M2000 μιλά για indexes. Τα ίδια indexes που απέρριψε γιατί το ORDER BY σκέτο του φάνηκε καλύτερη λύση. Και μετά σου δίνει κι ένα link να σε αποστομώσει το οποίο link λέει ότι αν έχεις index το Order By θα λειτουργήσει χωρίς να κάνει sorting. Λογικό, αφού αυτή τη δουλειά κάνει το index.

 

Εν ολίγοις το άτομο δεν καταλαβαίνει καν τι διαβάζει.

 

Αλλά εντάξει, είπαμε στοργή και προδέρμ.

  • Απαντ. 50
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοφιλείς Ημέρες

  • Moderators
Δημοσ.

Συγγνώμη τώρα, είσαι σοβαρός;

 

Πρώτον, πού και πότε έβγαλα αυθαίρετο συμπέρασμα για κάτι;

Δεύτερον, αυτό που στέλνεις μιλάει για indexes και για το ότι σε μερικές περιπτώσεις η order by δε θα χρειαστεί να κάνει έξτρα πράγματα για να ταξινομήσει το αποτέλεσμα του query. Τι απ' όλα αυτά βοηθάει όταν το ίδιο το query αργεί;

Δημοσ.

Elorant

Ρε άνθρωπε ότι θες σκέφτεσαι; Σου λέει το Link ότι γίνεται Optimization ανάλογα το Order by που έχεις κάνει. Και εσύ το ερμηνεύεις αλλιώς! Μάλιστα αλλά το θέμα είναι ότι αν δεν βάλεις order by τότε δεν είναι βέβαιο ότι θα χρησιμοποιηθεί το Index, γιατί ζητάς κάτι παράξενο.


Kercyn,

Το Query σχηματίζεται με κάποιο τρόπο. Σε αυτόν τον τρόπο παίζει το Optimization. Μην σκέφτεσαι ότι η ταξινόμηση γίνεται στο τέλος!

Δημοσ.

offtopic: M2000 άστο βρε αδελφέ, δεν ξέρεις, μην μιλάς. Έχεις αποδείξει το απέραντο της ημιμαθειας σου. Είμαι πλέον σίγουρος τι σημαίνει το Μ στο nick σου.

 

OP, χρειάζεται να πάρεις το Execution plan του query. Εκεί θα δεις πραγματικά τι δρόμο ακολουθεί η εκτέλεση του query με το κόστος του κάθε επί μέρους βήματος που διαλέγει.

Δημοσ.

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

 

Βέβαια και από το execution plan δεν βγάζει κανείς πολλά!

 

Even though the new execution plan has fewer operations, the cost value has increased considerably because the clustering factor of the new index is worse (see “Automatically Optimized Clustering Factor”). At this point, it should just be noted that the cost value is not always a good indicator of the execution effort.

Δημοσ.

και σουαχιλι αν δεν ξέρεις και τύχει να προσπαθείς να διαβάσεις κάτι δεν θα καταλάβεις και πολλά

Δημοσ.

@Μ2000

Δίνεις Link τα οποία λένε τελείως διαφορετικά πράγματα από αυτά που νομίζεις ότι λένε. Το πρώτο link που έδωσες έλεγε ότι αν βάλεις ένα order by δεν χρειάζεται να ταξινομήσει τα προϊόντα αν υπάρχει ήδη index στο συγκεκριμένο column. Λέει δηλαδή ότι το order by ΔΕΝ ΧΡΕΙΑΖΕΤΑΙ. Το δεύτερο link που έδωσες λέει το ίδιο πράγμα με διαφορετικά λόγια.

 

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

Δημοσ.

Elorant, αν δεις το πρώτο Link που έδωσα έχει για ότι λέει ο τύπος ένα execution plan. Η μόνη περίπτωση που το cost είναι μικρότερο είναι εκεί που χρησιμοποιεί σωστά το Order By.

18,18,17,3

Δημοσ.

Εγώ πάλι απορώ ότι δεν αναφέρει το RDBMS , το query , την υποδομή του πίνακα και μιλάμε για optimization του query .

 

Παρόλα αυτά ο index δεν είναι πανάκεια και δεν αυξάνει πάντα την ταχύτητα.

 

Όσον αφορά ότι ένα query μπορεί να είναι αργό υπάρχουν λογοι. Δεν ξέρω για 100 αλλά πχ μπορεί το rdbms να αποφασίσει να πάει για full table scan ενω υπάρχει κατάλληλος index

Δημοσ. (επεξεργασμένο)

Αλλά το συμπεραίνω [ότι έχει indexes] γιατί αν δεν είχε  θα είχε απαντήσει άμεσα!

Συμπέρασμα: Το αν έχεις και άλλη δουλειά να κάνεις εξαρτάται από το αν έχεις indexes στη βάση σου.

 

@elorant

 M2000 fact #932: Μ2000 applies 7th Normal form.

Επεξ/σία από pmav99
  • Like 2
Δημοσ.

Τεχνικά σε μερικές περιπτώσεις ο M2000 ειναι σωστός τσεκάρετε http://dba.stackexchange.com/questions/634/adding-an-order-by-to-this-query-returns-faster-than-without-why 

 

Αλλα δεν παιζει να ισχύει το παραπάνω στην query του TS παραπάει.

 

Πέρα από τον τίτλο της ερώτησης, διαβάζουμε και τις απαντήσεις. Για αυτό είναι εκεί.

Δημοσ.

Αν απο την query περιμένεις να επιστρέψει μόνο ένα row ναι. 

 

Γιατί αν δεν βάλεις το LIMIT θα συνεχίσει να ψάχνει και για άλλο row που προφανώς δεν θα υπάρχει.

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...