Ceci est un problème que mon ami a demandé par téléphone. Le programme C# 3.5 qu'il a écrit est en train de remplir un jeu de données à partir d'une table de maître du patient qui compte 350 000 enregistrements. Il utilise le pilote Microsoft ADO.NET pour Oracle. La méthode ExecuteQuery prend plus de 30 secondes pour remplir l'ensemble de données. Cependant, la même requête (extraction d'environ 20K enregistrements) prend moins de 3 secondes dans Toad. Il n'utilise aucune transaction dans le programme. Il a un index sur la colonne (Nom) qui est utilisée pour la recherche.Lent dans le remplissage .NET DataSet d'Oracle 9i
Voici quelques alternatives i proposées: -
1) Essayez d'utiliser un lecteur de données, puis remplir un tableau de données et de le transmettre à la forme de la lier à la boîte Combo (ce qui est une bonne idée car il est susceptible de prendre en même temps)
2) Essayez Oracles' ADO.NET pilote
3) Utilisez les fourmis profileur pour voir si vous pouvez identifier une ligne de ADO.NET particulière.
Est-ce que quelqu'un a fait face à des problèmes similaires et quelles sont les façons de résoudre ce problème.
Merci, Chak.
Est-ce que la requête dans Toad récupérer toutes les lignes ou tout simplement la première 100 ou 1000? – Theo
La requête Toad récupère environ 20 K enregistrements. Data Reader prend également quelques secondes - c'est l'ensemble de données qui prend 30 secondes. – Chakra