Κλήση Oracle SP με TableAdapter πολύ αργή

ψήφοι
3

Έχω ένα ερώτημα που τρέχει πολύ γρήγορο όταν εκτελείται στον επεξεργαστή SQL (Oracle): 1ms.

Το ίδιο ερώτημα (όπως αποθηκευμένη διαδικασία), όταν εκτελείται από έναν DataSet-TableAdapter διαρκεί 2 δευτερόλεπτα. Είμαι απλά ανάκτηση 20rows.

Επειδή είμαι χρησιμοποιώντας ένα TableAdapter, οι τιμές επιστροφή αποθηκεύονται σε μια διαιτητή δρομέα.

Αν ήμουν γοητευτικός 2'000 σειρές θα μπορούσα να καταλάβω ότι κάποια στιγμή χρειάζεται για την κατασκευή του συνόλου δεδομένων, εκτός από 2 δευτερόλεπτα μόνο 20 γραμμές φαίνεται πάρα πολύ για μένα.

Υπάρχει ένας καλύτερος τρόπος για να εκτελέσει SP στο μαντείο και αυτός είναι ο μόνος τρόπος; Τι θα μπορούσε να προσπαθώ να κάνω για να βελτιώσει τις επιδόσεις;

Ευχαριστώ για τη βοήθειά σου!


Αναζήτηση στο google, φαίνεται ότι το πρόβλημα είναι με το refcursor. Άλλοι άνθρωποι που αντιμετωπίζουν το ίδιο πρόβλημα απόδοσης, αλλά καμία λύση παρέχεται.

Δημοσιεύθηκε 09/12/2008 στις 16:00
πηγή χρήστη
Σε άλλες γλώσσες...                            


4 απαντήσεις

ψήφοι
2

Ποια υπηρεσία παροχής δεδομένων χρησιμοποιείτε;

Έχετε System.Data.OracleClient αναφορά ή να κάνετε χρησιμοποιείτε odp.net (πάροχος δεδομένων της Oracle για τη σύνδεση .NET εφαρμογές με Oracle) ή να κάνετε χρήση (παλαιότερα γνωστή ως Corelab) πάροχος DEVART του.

Έχω καλές εμπειρίες με odp.net σε συνδυασμό με την Oracle 9. Μπορείτε να κατεβάσετε odp.net δωρεάν στην ιστοσελίδα μαντείο. Δείτε: http://www.oracle.com/technology/tech/windows/odpnet/index.html

Μπορείτε να χρησιμοποιήσετε την τελευταία έκδοση (11.1.0.6.20) για να συνδεθείτε με μια βάση δεδομένων Oracle 9.

Απαντήθηκε 10/12/2008 στις 12:28
πηγή χρήστη

ψήφοι
0

Εντάξει. Βρήκα αυτό είναι το πρόβλημα.

Στην αρχή νόμιζα ότι ήταν ένα πρόβλημα της DataProvided, αλλά ότι δεν ήταν. Ανακάλυψα το ίδιο θέμα σε SQLServer 2000 ....

Ψάχνοντας στο google βρήκα κάτι σχετικά με το σχέδιο εκτέλεσης. Λαμβάνοντας αυτό τον τρόπο, θα ενισχυθεί η απόδοση του ερωτήματος του 50%.

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

Η καλύτερη απάντηση είναι σε αυτή τη θέση: Παράμετρος Sniffing (ή πλαστογράφηση) σε SQL Server

Ελπίζω ότι αυτό θα σας βοηθήσει.

Απαντήθηκε 12/12/2008 στις 11:45
πηγή χρήστη

ψήφοι
0

Βεβαιωθείτε ότι η ρύθμιση του CommandTypeσε CommandType.StoredProcedure.

Για παράδειγμα (από MSDN ):

OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "COUNT_JOB_HISTORY";
cmd.CommandType = CommandType.StoredProcedure;
Απαντήθηκε 10/12/2008 στις 08:42
πηγή χρήστη

ψήφοι
0

Πόσο καιρό χρειάζεται όταν χρησιμοποιείτε ένα DataReader αντί για TableAdaptor; Θα προσπαθήσουμε το DataReader. Ποτέ δεν αντιμετώπισαν προβλήματα με το DataReader.

Απαντήθηκε 09/12/2008 στις 16:43
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more