Ich habe gerade mit einem Oracle DBA zu tun, der mir ein Profiling geschickt hat, das er gemacht hat. Einer der Begriffe in seinem Bericht ist "Buffer Gets", eine Idee, was das eigentlich bedeutet? Meine Schätzung ist Bytes aus einem Puffer abgerufen, aber ich habe keine Ahnung wirklich. Hier einige Beispiel-Ausgabe:In Oracle, was bedeutet "Buffer Gets" eigentlich?
Buffer Gets Executions Gets per Exec %Total Time (s) Time (s) Hash Value
--------------- ------------ -------------- ------ -------- --------- ----------
137,948,100 31,495 4,380.0 98.4 6980.57 6873.46 4212400674
Module: JDBC Thin Client
SELECT fieldOne, fieldTwo, fieldThree, fieldFour, fieldFive FROM TableExample
WHERE fieldOne = 'example'
Es wäre auch sehr nützlich sein, zu wissen, was ‚Ruft pro Exec‘ bedeutet, wie ich vermute, dass sie verwandt sind? Ich bin Programmierer, aber kein DBA.
Ja - hinzufügen, dass auf, viele Abfrage Kostenmodelle fast ausschließlich auf Platte fokussieren I/O, die Puffer (nicht perfekt, aber so nah wie möglich) wird modelliert. Also, es soll eine einfache Kostenfunktion sein - "Wie teuer ist diese Abfrage, CPU zu ignorieren (was sowieso meistens vernachlässigbar ist)?" –
Danke für die sehr gute Antwort, ist die einzige Frage, die mir in den Sinn ist, für die oben genannten Daten 137.948.100 ist eine hohe Anzahl von Puffer für eine ausgewählte Abfrage, die 31.495 mal aufgerufen wird? Kann diese Nummer Dinge wie Tabellen-Scan gegen Index usw. anzeigen? – rustyshelf
Es scheint mir eine große Nummer zu sein, aber ich kann es nicht sagen, ohne zu wissen, wie viel Arbeit du machst.Bitten Sie Ihren DBA, einen "Explain Plan" für die Abfrage zu erstellen und zu überprüfen, ob er für Sie sinnvoll ist. –