Le moyen le plus rapide pour analyser des fichiers XML en C#?

J'ai pour charger plusieurs fichiers XML à partir d'internet. Mais pour le test avec une meilleure vitesse, j'ai téléchargé tous d'entre eux (plus de 500 fichiers) de la forme suivante.

<player-profile>
  <personal-information>
    <id>36</id>
    <fullname>Adam Gilchrist</fullname>
    <majorteam>Australia</majorteam>
    <nickname>Gilchrist</nickname>
    <shortName>A Gilchrist</shortName>
    <dateofbirth>Nov 14, 1971</dateofbirth>
    <battingstyle>Left-hand bat</battingstyle>
    <bowlingstyle>Right-arm offbreak</bowlingstyle>
    <role>Wicket-Keeper</role>
    <teams-played-for>Western Australia, New South Wales, ICC World XI, Deccan Chargers, Australia</teams-played-for>
    <iplteam>Deccan Chargers</iplteam>
  </personal-information>
  <batting-statistics>
    <odi-stats>
      <matchtype>ODI</matchtype>
      <matches>287</matches>
      <innings>279</innings>
      <notouts>11</notouts>
      <runsscored>9619</runsscored>
      <highestscore>172</highestscore>
      <ballstaken>9922</ballstaken>
      <sixes>149</sixes>
      <fours>1000+</fours>
      <ducks>0</ducks>
      <fifties>55</fifties>
      <catches>417</catches>
      <stumpings>55</stumpings>
      <hundreds>16</hundreds>
      <strikerate>96.95</strikerate>
      <average>35.89</average>
    </odi-stats>
    <test-stats>
      .
      .
      .
    </test-stats>
    <t20-stats>
      .
      .
      .    
    </t20-stats>
    <ipl-stats>
      .
      .
      . 
    </ipl-stats>
  </batting-statistics>
  <bowling-statistics>
    <odi-stats>
      <matchtype>ODI</matchtype>
      <matches>378</matches>
      <ballsbowled>58</ballsbowled>
      <runsgiven>64</runsgiven>
      <wickets>3</wickets>
      <fourwicket>0</fourwicket>
      <fivewicket>0</fivewicket>
      <strikerate>19.33</strikerate>
      <economyrate>6.62</economyrate>
      <average>21.33</average>
    </odi-stats>
    <test-stats>
      .
      .
      . 
    </test-stats>
    <t20-stats>
      .
      .
      . 
    </t20-stats>
    <ipl-stats>
      .
      .
      . 
    </ipl-stats>
  </bowling-statistics>
</player-profile>

Je suis en utilisant

XmlNodeList list = _document.SelectNodes("/player-profile/batting-statistics/odi-stats");

Et puis la boucle de cette liste avec foreach comme

foreach (XmlNode stats in list)
  {
     _btMatchType = GetInnerString(stats, "matchtype"); //it returns null string if node not availible
     .
     .
     .
     .
     _btAvg = Convert.ToDouble(stats["average"].InnerText);
  }

Même je suis le chargement de tous les fichiers hors connexion, l'analyse est très lent
Est-il un bon moyen plus rapide pour les analyser? Ou est-il problème avec SQL? Je suis sauver toutes les données extraites à partir de XML dans la base de données à l'aide de jeux de données, TableAdapters avec la commande insert.

EDIT: Maintenant pour l'utilisation de XmlReader veuillez donner un peu de code de XmlReader pour le document ci-dessus. pour l'instant, j'ai fait ce

void Load(string url) 
{
    _reader = XmlReader.Create(url); 
    while (_reader.Read()) 
    { 
    } 
} 

Availible des Méthodes pour XmlReader sont source de confusion. Ce que j'ai besoin est d'obtenir le frappeur et le bowling stats complètement, le frappeur et le bowling stats sont différentes, et que l'odi,t2o,ipl, etc sont les mêmes à l'intérieur de bowling et au bâton.

Avez-vous essayé d'utiliser LINQ to XML pour faire l'analyse?
Non, je n'ai pas, est-ce la meilleure approche?
Vous devrez peut-être deux questions distinctes (chargement de fichier, le noeud de l'extraction, de la base de données des interactions etc) pour clouer les goulets d'étranglement. Il existe plusieurs façons d'améliorer les performances de chaque composant.
Je suis étudiant, ce travail est une partie de mon projet. Pour l'instant, j'ai fait une classe qui analyse tous ces fichiers XML et de les enregistrer dans la base de données à partir de l'intérieur de cette classe. Oui ce serait mieux si je peux sperate composants mais je ne sais pas comment faire, pouvez-vous me donner un lien pour apprendre?

OriginalL'auteur SMUsamaShah | 2010-06-15