Estoy lidiando con un DBA de Oracle en este momento, quien me ha enviado algunos perfiles que ha hecho. Uno de los términos en su informe es 'Buffer Gets', ¿alguna idea de lo que esto significa en realidad? Mi suposición es que los bytes se recuperaron de un búfer, pero realmente no tengo idea. Aquí está un ejemplo de salida:En Oracle, ¿a qué se refiere realmente 'Buffer Gets'?
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'
También sería útil saber qué 'Obtiene por Exec' medios, ya que supongo que están relacionados? Soy un programador, pero no soy un DBA.
Sí - para añadir a eso, muchos modelos de costos de consultas se centran casi exclusivamente en el disco I/O, que búfer Obtiene es el modelado (no perfectamente, pero tan de cerca como pueda). Por lo tanto, debe ser una función de costo simple: "¿Qué tan cara es esta consulta, ignorando la CPU (que en su mayoría es insignificante)?" –
Gracias por la muy buena respuesta, la única pregunta que queda en mi mente es, para los datos anteriores es 137,948,100 una gran cantidad de búfer obtiene para una consulta de selección que se llama 31,495 veces? ¿Puede este número indicar cosas como escaneo de tabla versus índice, etc.? – rustyshelf
Me parece un número grande, pero no puedo decir sin saber cuánto trabajo está haciendo.Haga que su DBA haga un "plan de explicación" sobre la consulta y vea si tiene sentido para usted. –