Voor een updateproces moet ik een aantal tabellen tegen elkaar vergelijken. Na stap 3 moeten de records die ik heb verwerkt niet meer worden gebruikt. Om de gegevens netjes te bewaren zet ik een status gedaan op 1.
Bij het updaten van dit veld dropt de performance bij 1 van de tabellen.
Bovenstaande code heb ik ook geprobeerd de status te veranderen ipv de DataRows te verwijderen. Ook heb ik het geprobeerd via gegevens[0]["gedaan"] = 1; Zowel als string en als cijfer. Het probleem zit hem in de gegevens_row en niet bij de update_row. Het verschil bedraagt van een verwerking van een paar tellen tot vele minuten. Er moet dus ergens een fout zitten, maar ik zie niet waar er een performance verbetering kan worden gevonden.
Iemand ideeen voor een betere performance bij dataset updaten?
Bij het updaten van dit veld dropt de performance bij 1 van de tabellen.
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| //Klaarzetten gegevens DataRow[] update = dataSet11.Tables["update"].Select(); progressBar6.Maximum = update.Count(); int x = 0; int hetzelfde = 0; //ALLE UPDATE_ROWS vergelijken met systeem foreach (DataRow update_row in update) { x++; progressBar6.Value = x; //relatie_gegevens selecteren string select = "id_woningstichting = '" + update_row[5] + "'"; DataRow[] gegevens = dataSet11.Tables["relatie_gegevens"].Select(select); if (gegevens.Count() > 0) { DataRow gegevens_row = gegevens[0]; select = "id_relatie = '" + Convert.ToString(gegevens_row[0]) + "'"; DataRow[] relatie = dataSet11.Tables["relatie"].Select(select); string id_huis = Convert.ToString(relatie[0][1]); select = "id = '" + id_huis + "'"; DataRow[] woning = dataSet11.Tables["woning"].Select(select); id_huis = Convert.ToString(woning[0][1]); if (Convert.ToString(update_row[1]) == Convert.ToString(id_huis)) { // Console.WriteLine("Hetzelfde huis: " + id_huis + " " + update_row[1]); //update_row["gedaan"] = 1; // gegevens[0]["gedaan"] = "1"; gegevens_row.Delete(); update_row.Delete(); hetzelfde++; } } } |
Bovenstaande code heb ik ook geprobeerd de status te veranderen ipv de DataRows te verwijderen. Ook heb ik het geprobeerd via gegevens[0]["gedaan"] = 1; Zowel als string en als cijfer. Het probleem zit hem in de gegevens_row en niet bij de update_row. Het verschil bedraagt van een verwerking van een paar tellen tot vele minuten. Er moet dus ergens een fout zitten, maar ik zie niet waar er een performance verbetering kan worden gevonden.
Iemand ideeen voor een betere performance bij dataset updaten?