von agrupe » Mo, 22.02.2010 17:22
Hallo,
nachdem ich mein Rechnungstool seit gut 2 Jahren betreibe, habe ich ca. 20.000 Bestellpositionen im System. Das ist mE. für eine DB nicht viel, zumal die zentrale Tabelle, die die Positionen verwaltet nur aus Zeigern in andere Tabellen wie Produkte etc besteht. Seit kurzem brauche ich, um mit folgender Funktion einen neuen Datensatz in die DB zu schreiben gut 1-2 sec. Das ist viel langsamer als "früher" und echt nervig. Am Rechner (Quad Core, Linux) liegts gewiss nicht.
Bevor ich jetzt alles per SQL in die DB schreibe und es dann im Formular darstelle erst mal meine Frage, ob es noch eine andere Möglichkeit gibt oder ob bei der Base Datenbank bei 20.000 Datensätzen in einer Tabelle tatsächlich eine Performancegrenze erreicht ist und ich evtl. auf MySQL umsteigen sollte.
Danke für jeden Tipp!
Andreas
Sub InsertArtikel(iArtID as Integer,dMenge as Double)
Dim oForm as Object 'darin wird das Formular gespeichert
Dim oSubForm as Object ' darin stehen die Bestellpositionen
Dim Zeit_Start as date ' zum Test
Dim Zeit_End as date
Zeit_Start = time()
oForm=thisComponent.drawpage.getForms.getByName ("Bestellnr")
oSubForm=oForm.getByName("Positionen")
' 1=Bestell_ID, 2=Bestellnr, 3=Artikel_ID, 4=Preis, 5= Anzahl, 6=Summe gem. Tabelle Bestellungen
oSubForm.moveToInsertRow() ' Cursor auf neuen, nicht eingefügten DS setzen
oSubForm.updateInt(3,iArtID) ' Artikel_ID einsetzen
oSubForm.updatedouble(5,dMenge) ' Anzahl eintragen
oSubForm.insertRow() ' Ins Resultset und in die DB schreiben
oSubForm.moveToCurrentRow()
Zeit_End = time()
MsgBox("Start " & Zeit_Start & Chr(13) & "Ende" & Zeit_End)
End Sub
Hallo,
nachdem ich mein Rechnungstool seit gut 2 Jahren betreibe, habe ich ca. 20.000 Bestellpositionen im System. Das ist mE. für eine DB nicht viel, zumal die zentrale Tabelle, die die Positionen verwaltet nur aus Zeigern in andere Tabellen wie Produkte etc besteht. Seit kurzem brauche ich, um mit folgender Funktion einen neuen Datensatz in die DB zu schreiben gut 1-2 sec. Das ist viel langsamer als "früher" und echt nervig. Am Rechner (Quad Core, Linux) liegts gewiss nicht.
Bevor ich jetzt alles per SQL in die DB schreibe und es dann im Formular darstelle erst mal meine Frage, ob es noch eine andere Möglichkeit gibt oder ob bei der Base Datenbank bei 20.000 Datensätzen in einer Tabelle tatsächlich eine Performancegrenze erreicht ist und ich evtl. auf MySQL umsteigen sollte.
Danke für jeden Tipp!
Andreas
Sub InsertArtikel(iArtID as Integer,dMenge as Double)
Dim oForm as Object 'darin wird das Formular gespeichert
Dim oSubForm as Object ' darin stehen die Bestellpositionen
Dim Zeit_Start as date ' zum Test
Dim Zeit_End as date
Zeit_Start = time()
oForm=thisComponent.drawpage.getForms.getByName ("Bestellnr")
oSubForm=oForm.getByName("Positionen")
' 1=Bestell_ID, 2=Bestellnr, 3=Artikel_ID, 4=Preis, 5= Anzahl, 6=Summe gem. Tabelle Bestellungen
oSubForm.moveToInsertRow() ' Cursor auf neuen, nicht eingefügten DS setzen
oSubForm.updateInt(3,iArtID) ' Artikel_ID einsetzen
oSubForm.updatedouble(5,dMenge) ' Anzahl eintragen
oSubForm.insertRow() ' Ins Resultset und in die DB schreiben
oSubForm.moveToCurrentRow()
Zeit_End = time()
MsgBox("Start " & Zeit_Start & Chr(13) & "Ende" & Zeit_End)
End Sub