DataTable Sélectionnez mise en Œuvre à de Multiples ET Conditions

J'ai un DataTable avec environ 50 000 lignes que je suis en utilisant DataTable.Select pour extraire des lignes d'. Le Select nécessite plusieurs AND conditions, y compris une wildcard match. J'ai joué autour et a constaté que, en procédant de la même Select en plusieurs étapes, le temps d'exécution peut être considérablement réduite, mais en changeant l'ordre de la AND déclarations ne pas l'affecter.

//This takes ~ 750 ms
DataRow[] results = myDataTable.Select("Field1 LIKE '*" + term1 + "*'" +
"AND Field2 = '" + term2 + "'" +
"AND Field3 = '" + term3 + "'");

//This also takes ~750 ms
DataRow[] results2 = myDataTable.Select("Field3 = '" + term3 + "'" +
"AND Field2 = '" + term2 + "'" +
"AND Field1 LIKE '*" + term1 + "*'");  

//This takes 0.415 ms
DataTable table1 = myDataTable.Select("Field3 = '" + term3+ "'").CopyToDataTable();
DataTable table2 = table1.Select("Field2 = '" + term2 + "'").CopyToDataTable();
DataRow [] results3 = table2.Select("Field1 LIKE '*" + term1 + "*'");  

Ma question est, est-il un moyen de toujours faire le SELECT opération évaluer AND conditions de gauche à droite afin que le nombre d'enregistrements recherchés seraient réduits entre les étapes? Il semblerait qu'il pourrait être un bon moyen de gagner du temps. Merci pour vos idées.

OriginalL'auteur DaveH | 2013-04-25