Hallo zusammen,
kann man irgendwie rausfinden, wie viele Queries offen sind?
Eine Funktion die das herausfindet und zurückgibt oder ähnliches? Habt ihr eine Lösung?
Ankündigung
Einklappen
Keine Ankündigung bisher.
Wie viele Queries sind offen?
Einklappen
Neue Werbung 2019
Einklappen
X
-
Wie viele Queries sind offen?
Stichworte: -
-
Na jetzt versteh ich dich. Wie robo47 schon sagt ist offen hier ganz gefährlich falsch gewählt
Im Endeffekt musst du bei jedem Query eben den String mitspeichern und dazu vlt. noch die Ausführungszeit. Wenn du eine Klasse nutzt kannst du sowas ganz einfach implementieren.
-
Ich glaub dein ausdruck OFFEN ist hier absolut deplaziert und sorgt für verwirrung, die queries die da angezeigt werden sind die die beim AKTUELLEN request ausgeführt WURDEN!!! Das hat nichts mit offen oder so zu tun.
Nichts anderes, sowas kann man imho bei jeder etwas besseren DB-Klasse über einen Profiler abfragen, findet man in Zend_Db, Doctrine und den DB-Klassen wohl fast jedes Frameworks, kannst dir ja z.b. einfach mal cake anschauen wie es da gelöst ist.
Einen Kommentar schreiben:
-
Ein Gast antworteteEben, dass ist das, was Tholi & Tiberius geschrieben haben.
Du brauchst einen DB Layer oder eine eigene Queryfunktion wo du den Counter mit jedem Query erhöhst.
Und am Schluss gibst du den Wert dann aus.
Edit: damit kriegt man die Anzahl der Ausgeführen Queries
Einen Kommentar schreiben:
-
Ein Gast antworteteIch weis nicht ob Ihr CakePHP kennt. Unten steht im Debug Modus wie viele Querys offen sind, welche Datenbankzugriffe und welche Query du gerade ausführt etc. Sowas will ich nachbauen!
Unten ein kleiner Ausschnitt aus Google.de
Einen Kommentar schreiben:
-
Pro User ist, sofern nicht MYSQL_ASYNC in mysqlnd genutzt wird, immer nur ein query aktiv. Falls du einen DB Layer hast, kannst du die Query Aufrufe zählen - als Übersicht
Einen Kommentar schreiben:
-
Ja wie gesagt über SHOW PROCESSLIST. Aber was willst du damit genau machen? Die offenen Queries sind nicht unbedingt die interessantesten.
Einen Kommentar schreiben:
-
Ein Gast antworteteja eig. für die ganze seite
Einen Kommentar schreiben:
-
Möchtest du das für die komplette Datenbank wissen oder nur für den aktuellen User der ein PHP Skript ausführt?
Bei MySQL kannst du mit "SHOW PROCESSLIST" alle Prozesse auflisten. Dann musst du nur noch die Prozesse zählen die gerade einen Query durchführen.
Bei einem einzelnen User wird das wohl nichts denn da wird natürlich beim absenden eines Queries gewartet bis er fertig ist und somit ist maximal ein Query "offen".
Einen Kommentar schreiben:
-
Spontan würd ich sagen: Nimm dir doch eine Counter variable und erhöhe diese bei jedem query und nachdem query ziehste wieder einen ab
Einen Kommentar schreiben:
Einen Kommentar schreiben: