Laden...

Select Abfrage Performance

Erstellt von Capi vor 19 Jahren Letzter Beitrag vor 19 Jahren 3.979 Views
C
Capi Themenstarter:in
202 Beiträge seit 2004
vor 19 Jahren
Select Abfrage Performance

Hi

wenn ich eine Select abfrage mache auf eine Access datenbank dann braucht die beim ersten eintrag ewig aber bei den anderen geht es 10 mal so schnell an was liegt das?

Meine Select Abfrage:

DataRow[] myDataRow = dtsGesamt.Tables["AktProjekte"].Select("Projektnummer= " + comboBoxProjektChange.SelectedValue +" AND Mitarbeiternummer = "  + oSetup.SetGetiMitarbeiternummer.ToString());

Die Mehrfachabfrage erfolgt, da ich eine Combobox habe in der versch. Projekte gelistet sind. Wenn ich jetzt auf ein anderes Projekt klicke dann braucht es ewig beim ersten mal bis er die erforderlichen Daten ermittelt hat.

Hoffe das weiss einer

Mfg
Andi

C
Capi Themenstarter:in
202 Beiträge seit 2004
vor 19 Jahren

Sodele nach mehrstündigen Test hab ich festgestellt warum hier soviel performance verloren geht. Und zwar ist die Projektnummer länger als 10 Stellen dann braucht die Select Abfrage ewig. Liegt wohl am OleDbDataAdapter das der da probleme hat.

Nur so als Info falls jemand mit OleDb und großen Datenmengen arbeiten will sollte er lieber auf SQL ausweichen -> denk mal der ist schneller(hab aber keine Erfahrung damit)

Mfg
Andi

F
10.010 Beiträge seit 2004
vor 19 Jahren

Nun, da du mit dem o.a. Source arbeitest, frage ich mich, wo da der OleDb oder
SqlClient zum Einsatz kommt.

Ist es in "SetGetiMitarbeiternummer"?
Ansonsten arbeitest Du nämlich nur im DataSet und damit im Hauptspeicher deiner Maschine.
Da kann dir der SQL-Server auch nicht helfen.

Aber ansonsten, ist dein Resultat schon richtig, wenn Du eine Echte Datenbank
mit einigen hundert Tausend Datensätzen hast ist Access wirklich überfordert.

Wofür sind wohl so dinger wie der SQL-Server, Oracle, DB2 o.ä. entsanden?

C
65 Beiträge seit 2004
vor 19 Jahren

Original von FZelle
Wofür sind wohl so dinger wie der SQL-Server, Oracle, DB2 o.ä. entsanden?

Hm, dafür, dass sich manche Unternehmen die **** ihrer Eigner vergolden lassen wollen? Man nehme MySQL, optimiere den Server bis zum Anschlag, schreibe sauberen Code, umgehe alles, was MySQL ausbremst, weil die Entwickler keinen Bock drauf haben, sinnloses Zeug zu optimieren (zB "inner joins") und fahre einen Benchmark gegen Oracle, mySAP, DB2 & Co...

/// <summary>
/// Signatur
/// </summary>

C
980 Beiträge seit 2003
vor 19 Jahren

Nur weil du das R von RDBMS nicht magst heist es noch lange nicht, dass das R bei einem RDBMS sinnlos ist ... (falls es kein RDBMS sein will ist wohl SQL ohnehin der falsche Ansatz)

F
10.010 Beiträge seit 2004
vor 19 Jahren

Für CarstenP:
Hast Du schon mal gesehen was MySql macht, wenn eine Kleine
DB mit etwa 170 Tabellen und mehreren Hundert Millionen Datensätzen
Verwaltet werden soll.

Und wenn Du was wirklich schnelles brauchst, dann nimm SQLite.

Und diese Typisch Antikapitalistische Antwort ist bezeichnend für
Leute die nicht genau wissen worüber sie reden.
Die Eigner von Oracle und MS sind deswegen so Reich geworden,
weil sie anscheinend etwas verkauft haben, was andere haben
wollten.
Ob das Zeug gut oder schlecht ist, sei dahingestellt, aber
wieso willst Du für deine Arbeit Geld haben, aber ausgerechnet
den SW-Entwicklern willst Du es nicht zugestehen?

Wie heisst es so schön : Erst Hirn einschalten, dann reden.