Abfrage legt Pc lahm

hikeda_ya

Erfahrenes Mitglied
Hallo Community,

wie kann ich die Abfrage besser / schneller machen damit mein Pc nicht lahm gelegt wird

PHP:
$res = sql ("
select *,namen.* from  interessant 
left join namen on interessant.firmen_id = namen.firmen_id
order by interessant.firmen_id ");
								
								
		echo '
					<table border="1">
					<tr>
					<th>Firma</th>
					<th>Strasse</th>
					<th>Plz</th>
					<th>Ort</th>
					<th>Land</th>
					<th>Postfach</th>
					<th>PLZ-Postf.</th>
					<th>Ort-Postf.</th>
					<th>Vorname</th>
					<th>Name</th>
					<th>Anrede</th>
					<th>Titel</th>
					<th>Akad.-Grad</th>
					<th>Funktion</th>
					<th>Ansprechpartner</th>						
					</tr>';
					
			while ($row = mssql_fetch_assoc ($res)){
			
		echo '
					<tr>
					<td>'.$row['Firma'].'</td>
					<td>'.$row['Strasse'].'</td>
					<td>'.$row['PLZ'] .'</td>
					<td>'.$row['Ort'] .'</td>
					<td>'.$row['Land'] .'</td>
					<td>'.$row['Postfach'] .'</td>
					<td>'.$row['PF_PLZ'] .'</td>
					<td>'.$row['PF_Ort'] .'</td>
					<td>'.$row['vname'] .'</td>
					<td>'.$row['nname'] .'</td>
					<td>'.$row['anrede'] .'</td>
					<td>'.$row['titel'] .'</td>
					<td>'.$row['akad'] .'</td>
					<td>'.$row['funktion'] .'</td>
					<td>'.$row['mitarbeiter_id'] .'</td>
					</tr>';
					}
		echo '			
					</table>';

Ergebniss: 99137 Zeilen (rein text) die meinen Pc

Intel Pentium 4 CPU 3.00GHz
496 MB Ram komplett lahm legen
 
1. bleibt die Frage, was bringt dir eine Tabelle mit fast 100000 Zeilen? Da blickt dann eh niemand durch! ;)
2. sind das nun mal ne Menge Daten
3. SELECT * FROM...
 
zu 1. - ist von meinem Kunden so gewünscht (habe auch schon Länder bezogen die Abfrage gestalltet)

zu 2. ist mir das klar das es eine mänge Daten sind - dachte das man da vielleicht was machen kann

zu 3. wie denn dann wenn nicht mit * - ich benötige alle Spalten
 
SELECT * [...] ist einfach nicht sinnvoll, du solltest nur die Spalten ziehen, die du benötigst, auch wenn dies alle sind, ist es besser diese einzeln zu kennzeichnen...
 
Dennoch wäre hier ein Überdenken der Tabellen-Struktur angesagt. Ich habe es noch nie erlebt, daß sich eine Tabelle nicht normalisieren ließe. Entitäten mit tatsächlich verbundenen 300 Eigenschaften erscheinen mir ehrlich gesagt, mehr als unwahrscheinlich. Ausnahmen wäre vielleicht im wissenschaftlichen Umfeld zu finden. Und selbst in diesem Falle wäre eine vertikale Partitionierung der Tabelle dringend anzuraten.

Oder Ratschlag an den Kunden, sich für mehrere Millionen Euro einen Super-Computer zu kaufen ;-)
 
Die brauchen keinen Supercomputer (auch wenn die es sich leisten könnten). Die Abfragen sind verhältnismässig schnell. Es ist nunmal so, dass die Stammdaten sehr umfassend sind. Da lässt sich leider nicht viel machen. Ich würds ja gern etwas ausführlicher erklären, aber gerade zur Weihnachtszeit hänge ich sehr an meinem Job :D
 

Neue Beiträge

Zurück