ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
563
563
EMPFEHLEN
-
also ich hab hier eine tabelle, mit so ca 20000 einträgen (20 spalten)
wenn ich mir die mit ASP anzeigen lassen will
set myrs = dbconnection.execute("SELECT * FROM tabelle")
do while not myrs.eof
response.write "<tr>"
response.write "<td>" & myrs("s1")&"</td><td>" & ...
response.write "<tr>"
myrs.movenext
loop
dann dauert das weit uber 20 minuten , kann man da was machen ?
es müssen aber alle datensätze angezeigt werden, also
"Zeig doch nur immer 100 pro seite an" bringt in dem fall nix
gibbts da was um das zu beschleunigen ?
-
09.07.02 11:02 #2
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
welches dbms benutzt du denn?
wenn das bei 20000 datensätzen schon mehr als 20 minuten dauert, klingt das für mich irgendwie nach access.
dauert das über loopback (http://localhost) auch so lange, oder geht das da schneller? dann würd ich mal auf die verbindung von dir oder dem server tippen."You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
mssql server,
hab grad gesehen, das dass ding so lange braucht, da für jeden datensatz dann
set anzahl = dbconnection.execute("select count(*) anzahl from tabelle where firma = '" & myrs("firma") & "'")
ausgeführt wird, um festzustellen, ob diese Firma bereits in der Datenbank besteht.
muss aber auch sein, kann ich ned raustun, aber vielleicht gibts nen besseren Weg um das zu vergleichen
-
09.07.02 14:14 #4
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
du führst für jeden der 20000 datensätze eine neue abfrage aus?! ist doch klar, dass das dann ewig dauert.
mach das doch mit offline-recordsets. so nach dem schema:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
Dim zähler As Long Do While Not rs1.EOF zähler = 0 Do While Not rs2.EOF If rs1.Fields("firma") = rs2.Fields("firma") Then zähler = zähler + 1 End If rs2.MoveNext Loop rs1.MoveNext Response.Write CStr(rs1.Fields("firma")) & ": " & CStr(zähler) Loop
ist zwar auch nicht besonders schnell, aber wahrscheinlich schneller als deine version."You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
hmm also ich muss wenns den schon gibt die Hintergrundfarbe der <td> ändern in dem ich den namen anzeige,
der spass an der sache ist, das dass programm dynmisch sein soll, also mit allen datenbanken gehen soll, also les ich die systabellen aus, und mach dann quasi
'spaltenkoepfe("Name","Firma","Adresse",...)
for i = 0 to ubound(spaltenkoepfe)
if spaltenkoepfe(i) = "Firma" then
if rscheckkunde("Firma") = eval(" rsall(""spalte" & i & """)") then
tdcolor="blue"
else
tdcolor="transparent"
end if
end if
next
die anderen datensätze hab ich in einer temp tabelle,
die spalte1, spalte2, spalte3, usw hat
is bischen kompliziert, aber mit dem offline recordset vergleich wirds au ned schneller, weist du vielleicht noch was?
-
10.07.02 10:22 #6
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
eine idee hab ich noch, weiss allerdings nicht, ob das genau das ist, was du suchst.
du könntest das ganze mit einem join machen, dann kriegst du nur die datensätze, die in beiden tabellen vorkommen:
Code :1
SELECT tabelle1.text, tabelle2.text, COUNT(tabelle1.text) AS anzahl FROM tabelle1 INNER JOIN tabelle2 ON tabelle1.text = tabelle2.text GROUP BY tabelle1.text, tabelle2.text;
und nebenbei als tip: die feldnamen würd ich nicht aus einer systemtabelle auslesen. systemtabellen würd ich sowieso nur benutzen, wenn es absolut nicht anders geht.
die feldnamen einer tabelle kannst auch gleich über das recordset auslesen:
Code :1 2 3
For i = 0 To rs.Fields.Count - 1 feldnamen(i) = rs.Fields.Item(i).Name Next i
"You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
hmm mal testen , also mit den zwei ofline recordsets vergleichen, das dauert noch länger, da in der kunden datenbank so 140000 datensätze sind und ich so 20000 vergleichen will, also muss ich ja für jeden kunde alle 20000 durchgehen, da is für jeden kunden eine sql anweisung ausführen schneller, aber das mit dem join test ich mal durch, danke übrigens für die hilfe
Ähnliche Themen
-
Geschwindigkeit
Von bauchinj im Forum PHPAntworten: 4Letzter Beitrag: 10.02.10, 13:45 -
Geschwindigkeit
Von Banditxxy im Forum Flash PlattformAntworten: 4Letzter Beitrag: 22.12.04, 01:32 -
Dsl-geschwindigkeit-
Von MasterLutz im Forum Internet, DSL & FlatrateAntworten: 6Letzter Beitrag: 17.11.04, 21:35 -
Geschwindigkeit
Von UULF im Forum 3D Studio MaxAntworten: 3Letzter Beitrag: 24.09.04, 07:17 -
XP und Geschwindigkeit
Von Avariel im Forum Office-AnwendungenAntworten: 7Letzter Beitrag: 21.02.03, 11:45





Zitieren
Login





