En términos de copia, la aplicación (herramienta de BI, aplicación web, etc.) no importa, y el enfoque utilizado para el esquema db (almacén de datos, OLTP, etc.) tampoco importa en términos de copia, ya que esto es determinado por la implementación interna del motor de base de datos.
Voy a considerar cualquier movimiento de bytes de una pieza de memoria a otra como una “copia”.
Por lo general, se realizarán varias copias de datos desde el back-end del motor de base de datos a medida que responde la consulta y envía los datos a su aplicación, incluso si sus datos están en el grupo de búferes del motor de base de datos.
Para enviar una respuesta a una consulta SELECT, normalmente se realizan las siguientes “copias de datos” (como mínimo):
- Quiero salir, pero no se me permite. ¿Cuál sería la mejor manera de discutir esto con mis padres?
- ¿Por qué mi congelador se congela de repente?
- He notado que la gente, hoy en día, usa ‘mah’ o ‘ma’ para ‘my’, ‘tejo’ para ‘usted’, ‘ohkay’ para ‘ok’ y de la misma manera. ¿Cuál es el punto de usar el mismo número de letras para deletrear palabras incorrectamente?
- Soy un graduado de negocios de una universidad sueca y quiero trabajar en banca de inversión en Nueva York. ¿Que puedo hacer?
- ¿Por qué me siento desagradable e indigno cuando el narcisista me descartó por su nuevo suministro?
- Un “recorrido” de la agrupación de almacenamiento intermedio, que puede o no implicar la carga de datos del almacén persistente al responder la consulta. Si se trata de un índice, puede haber dos conjuntos de copias aquí: uno para recuperar las páginas de índice y otro para recuperar las páginas de la fila base. Aumente en 1 copia de la página por cada tabla base e índice involucrado en la consulta si hay una unión, y reste 1 por cada “índice de cobertura” que pueda usarse.
- Si el motor de base de datos utiliza estructuras de datos intermedias para responder a la consulta, como combinaciones de tablas hash o combinaciones de clasificación de combinación (que no usan un índice), puede haber copias involucradas para completar estas estructuras de datos.
- Algunos motores de bases de datos apuntan directamente a las filas de la agrupación de almacenamientos intermedios, mientras que otros copian datos de la agrupación de almacenamientos intermedios en estructuras intermedias al preparar el conjunto de resultados que se enviará a la aplicación. Si se trata de una clasificación grande, también habrá escrituras en el disco y posiblemente varias copias en el disco mientras se realiza la clasificación si es realmente grande.
- Copie desde la fila final establecida en el motor de ejecución de la base de datos a un búfer de memoria en el formato de protocolo que se enviará a través de la red.
- Cualquier copia realizada internamente por el hardware de red y las API de red de bajo nivel.
- Lea los bytes de la implementación de API del lado del cliente desde el formato del protocolo en estructuras de datos intermedias para que la aplicación pueda leer los datos.
- La aplicación misma copiará los bytes de las llamadas API (ODBC en este caso) en sus propias estructuras de datos.