Einzelnen Beitrag anzeigen
  #2  
Alt 01.04.2011, 19:19:54
thomas_w thomas_w ist offline
Junior Member
 
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
AW: extrem langsame Abfrage..

Hallo Stefan,

Zitat:
Zitat von Daktari Beitrag anzeigen
- ich habe folgende Parameter in der my.ini geändert:
- query_cache_size=1000000
- key_buffer_size=350M
- innodb_buffer_pool_size=150M
- log_slow_queries = c:/xampp/slowqueries.log
- log-queries-not-using-indexes = c:/xampp/slowqueries.log
Die query_cache_size ist mit 1000000 zu klein. Entweder auf ca. 50-80 MB setzen oder auf 0 .

Wieviel RAM steht der Maschine zur Verfügung?
Benutzt Du MyISAM und InnoDB oder nur eines von beiden?

Zitat:
Zitat von Daktari Beitrag anzeigen
- ich habe folgende Parameter in der my.ini geändert:
- query_cache_size=1000000
- key_buffer_size=350M
- innodb_buffer_pool_size=150M
- log_slow_queries = c:/xampp/slowqueries.log
- log-queries-not-using-indexes = c:/xampp/slowqueries.log
- in den betroffenen Tabellen habe ich Indizies hinzugefügt. Wenn ich allerdings EXPLAIN ausführe wird mir angezeigt dass für die Tabellen tabAuftrag, tabLieferschein2 und tabRechnung keine Indizies verwendet, und das sind gerade die Tabellen mit Inhalt (jeweils ca 10000 Datensätze).
Kannst Du mal den EXPLAIN posten, bitte so formatieren, sonst ist er sehr schwer zu lesen.

Beispiel
Code:
mysql> explain select * from test;
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
|  1 | SIMPLE      | test  | ALL  | NULL          | NULL | NULL    | NULL |    4 |       |
+----+-------------+-------+------+---------------+------+---------+------+------+-------+
1 row in set (0.00 sec)
Soweit für's erste..

EDIT - Die SQL-Abfrage hat hier einen Syntaxfehler...
Code:
...
FROM          tabLaendercode RIGHT OUTER JOIN
                       tabAuftrag ON  tabLaendercode.Land =  tabAuftrag.LALand LEFT OUTER JOIN
                       tabAngebot LEFT OUTER JOIN
...

Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.

Geändert von thomas_w (01.04.2011 um 19:28:30 Uhr) Grund: EDIT
Mit Zitat antworten