lunes, 19 de marzo de 2018

Arquitectura física de una base de datos en SQL Server




La unidad fundamental del almacenamiento de datos en SQL Server es la página. El espacio en disco asignado a un archivo de datos (.mdf o .ndf) de una base de datos se divide lógicamente en páginas numeradas de forma contigua de 0 a n. Las operaciones de E/S de disco se realizan en el nivel de página. Es decir, SQL Server lee o escribe páginas de datos enteras.

Páginas
En SQL Server, el tamaño de página es de 8 KB. Esto significa que las bases de datos de SQL Server tienen 128 páginas por megabyte. Cada página empieza con un encabezado de 96 bytes, que se utiliza para almacenar la información del sistema acerca de la página. Esta información incluye el número de página, el tipo de página, el espacio libre en la página y el Id. de unidad de asignación del objeto propietario de la página.




Las filas de datos se colocan en las páginas una a continuación de otra, empezando inmediatamente después del encabezado. Al final de la página, comienza una tabla de desplazamiento de fila y cada una de esas tablas contiene una entrada para cada fila de la página. Cada entrada registra la distancia del primer byte de la fila desde el inicio de la página. Las entradas de la tabla de desplazamiento de fila están en orden inverso a la secuencia de las filas de la página.

Extensiones
Las extensiones son la unidad básica en la que se administra el espacio. Una extensión consta de ocho páginas contiguas físicamente, es decir 64 KB. Esto significa que las bases de datos de SQL Server tienen 16 extensiones por megabyte.

Para hacer que la asignación de espacio sea eficaz, SQL Server no asigna extensiones completas a tablas con pequeñas cantidades de datos. SQL Server tiene dos tipos de extensiones:
Las extensiones uniformes son propiedad de un único objeto; sólo el objeto propietario puede utilizar las ocho páginas de la extensión.
Las extensiones mixtas, que pueden estar compartidas por hasta ocho objetos. Cada una de las 8 páginas de la extensión puede ser propiedad de un objeto diferente.

Archivos de base de datos
Las bases de datos de SQL Server 2005 utilizan tres tipos de archivos:

Archivos de datos principales: El archivo de datos principal es el punto de partida de la base de datos y apunta a los otros archivos de la base de datos. Cada base de datos tiene un archivo de datos principal. La extensión recomendada para los nombres de archivos de datos principales es .mdf.

Archivos de datos secundarios: Los archivos de datos secundarios son todos los archivos de datos menos el archivo de datos principal. Puede que algunas bases de datos no tengan archivos de datos secundarios, mientras que otras pueden tener varios archivos de datos secundarios. La extensión de nombre de archivo recomendada para los archivos de datos secundarios es .ndf.

Archivos de registro: Los archivos de registro almacenan toda la información de registro que se utiliza para recuperar la base de datos. Como mínimo, tiene que haber un archivo de registro por cada base de datos, aunque puede haber varios. La extensión de nombre de archivo recomendada para los archivos de registro es .ldf.

Páginas de archivo de datos
Las páginas de un archivo de SQL Server 2005 están numeradas secuencialmente, comenzando por 0 para la primera página del archivo. Cada archivo de una base de datos tiene un número de identificador único. Para identificar de forma única una página de una base de datos, se requiere el identificador del archivo y el número de la página.

Archivos de instantáneas de bases de datos
La forma de archivo que utiliza una instantánea de base de datos para almacenar sus datos de copia por escritura depende de si la instantánea la ha creado un usuario o se utiliza internamente:
Una instantánea de base de datos que crea un usuario almacena sus datos en uno o más archivos dispersos. La tecnología de archivos dispersos es una característica del sistema de archivos NTFS. Al principio, un archivo disperso no incluye datos de usuario y no se le asigna espacio en disco.
Las instantáneas de bases de datos las utilizan internamente algunos comandos DBCC. Entre estos comandos se incluyen: DBCC CHECKDB, DBCC CHECKTABLE, DBCC CHECKALLOC y DBCC CHECKFILEGROUP. Una instantánea de base de datos interna utiliza secuencias de datos alternativos dispersos de los archivos de base de datos originales.






Arquitectura del manejador de bases de datos Oracl



jueves, 15 de marzo de 2018

LOOP LETRAS DE COLORES TURBO ASSEMBLER

 Aportacion de compañeros de la otra clase 
;Turbo Assembler     

.MODEL SMALL
PILA SEGMENT STACK
    DB 64 DUP('PILA ')
PILA ENDS

BIOS EQU 10H
DOS EQU 21H
FIN EQU 4C00H

DATO SEGMENT 
    TITULO DB 'Agnax & Alizz '
    COLORES DB 5BH
    DB 5FH
    DB 5BH
    DB 5FH
    DB 5BH
    DB 00H
    DB 0F0H
    DB 00H
    DB 09CH
    DB 09FH
    DB 09CH
    DB 09FH
    DB 09CH
    DB 00H
    DB 0CH
DATO ENDS
 
CODIGO SEGMENT
    ASSUME DS:DATO, CS:CODIGO, SS:PILA
 
    INICIO PROC NEAR
    MOV AX, DATO
    MOV DS, AX
    ;Esta parte de aqui no es necesaria
    INT BIOS
    MOV CX, 15 
        BUCLE:
            ;Ponemos esto para no agarrar basura
            MOV DX,SI
            ADD DX,35 ;columna
            MOV DH,12 ;renglon
            CALL COLOCA
            MOV AL, [SI+OFFSET TITULO]
            MOV BL, [SI+OFFSET COLORES]
            CALL COLOR
            INC SI
        LOOPNZ BUCLE
     
        MOV AH,0
        INT DOS
        CALL COLOCA
        MOV AX, FIN
        INT DOS
 
    COLOR PROC
    MOV AH, 9
    INT BIOS
    RET
     
    COLOCA PROC
    MOV AH,2
    INT BIOS
    RET

END INICIO
CODIGO ENDS

miércoles, 14 de marzo de 2018

LOOP LETRAS DE COLORES EMU8086

 Aportacion de compañeros de la otra clase 
;EMU8086

BIOS EQU 10H
DOS EQU 21H
FIN EQU 4C00H

.DATA
    TITULO DB 'Agnax & Alizz '
    COLORES DB 5BH
    DB 5FH
    DB 5BH
    DB 5FH
    DB 5BH
    DB 00H
    DB 0F0H
    DB 00H
    DB 09CH
    DB 09FH
    DB 09CH
    DB 09FH
    DB 09CH
    DB 00H
    DB 0CH
 
.CODE
    INICIO PROC NEAR:
    MOV AX, @DATA
    MOV DS, AX
    ;Esta parte de aqui no es necesaria
    INT BIOS
 
    MOV CX, 15
     
        BUCLE:
            ;Ponemos esto para no agarrar basura
            MOV DX,SI
            ADD DX,35  ;Columna
            MOV DH, 12 ;Renglon
            CALL COLOCA
            MOV AL, [SI+OFFSET TITULO]
            MOV BL, [SI+OFFSET COLORES]
            CALL COLOR
            INC SI
        LOOPNZ BUCLE
     
        MOV AH, 0
        INT DOS
        CALL COLOCA
        MOV AX, FIN
        INT DOS
 
    COLOR PROC
    MOV AH, 9
    INT BIOS
    RET
     
    COLOCA PROC
    MOV AH,2
    INT BIOS
    RET

END INICIO

martes, 13 de marzo de 2018

MEMORIAS DE UNA BASE DE DATOS

Área Global del Sistema (System Global Area, SGA)

El Área Global del Sistema (SGA) es un grupo de estructuras de la memoria compartida que contiene datos e información de control de una instancia de una BD. Si varios usuarios se conectan de forma concurrente a la misma instancia, entonces los datos se comparten en el SGA, por lo que también se llama shared global area.

Una instancia en Oracle se compone de un SGA y de procesos. Cuando se crea una instancia, Oracle asigna memoria a un SGA automáticamente y esta se devuelve al sistema operativo cuando la instancia se cierra. Por tanto, cada instancia posee su propio SGA.

Una parte del SGA contiene información general acerca del estado de la base de datos y de la instancia, a la que los procesos en segundo plano necesitan acceder (SGA fija), pero no se almacenan los datos de usuario. El SGA también incluye información de comunicación entre procesos, como la información de bloqueos.

Buffer Cache (o Database Buffer Cache)

Su función es mantener bloques de datos más recientemente leídos directamente de los archivos de datos, esto se hace para un mejor desempeño pues si los datos son de nuevo requeridos por un usuario, su acceso es más rápido.

Cuando se procesa una consulta, el servidor busca los bloques de datos requeridos en esta estructura. Si el bloque no se encuentra en esta estructura, el proceso servidor lee el bloque de la memoria secundaria y coloca una copia en esta estructura. De esta forma, otras peticiones que requieran de este bloque de datos no requerirán de acceso a memoria secundaria (lecturas físicas).

Los bloques pueden contener datos modificados que no son permanentemente escritos a disco y los cuales maneja Oracle de una manera consistente para atender la concurrencia de los usuarios conectados a la base de datos, dichos usuarios comparten el acceso a esta área. Los bloques modificados se llamas bloques sucios.


Área de SQL Compartido, Shared SQL Pool

En esta zona se encuentran las sentencias SQL que han sido analizadas. El análisis sintáctico de las sentencias SQL lleva su tiempo y Oracle mantiene las estructuras asociadas a cada sentencia SQL analizada durante el tiempo que pueda para ver si puede reutilizarlas.

Antes de analizar una sentencia SQL, Oracle mira a ver si encuentra otra sentencia exactamente igual en la zona de SQL compartido. Si es así, no la analiza y pasa directamente a ejecutar la que mantiene en memoria. De esta manera se premia la uniformidad en la programación de las aplicaciones. La igualdad se entiende que es lexicográfica, espacios en blanco y variables incluidas.

La base de datos Oracle asigna memoria a la shared pool cuando una nueva instrucción sql se analiza. El tamaño de esta memoria depende de la complejidad de la instrucción. Si toda la shared pool ya ha sido asignada la base de datos Oracle puede liberar elementos de la shared pool hasta que haya suficiente espacio libre para nuevas sentencias. Al liberar un elemento de la shared pool el sql asociado debe ser recompilado y reasignado a otra área de sql compartida la próxima vez que se ejecute.

El contenido de la zona de SQL compartido es:
  • Las sentencias SQL y PL/SQL (texto de la sentencia)
  • Plan de ejecución de la sentencia SQL.
  • Lista de objetos referenciados.

Large Pool

El administrador de la base de datos puede configurar esta área de memoria opcional, para proveer localidades más amplias de memoria para:
  • Memoria de sesiones.
  • Procesos de I/O del servidor
  • Backups de la base de datos y operaciones de recuperación.
Al asignar espacios dentro de large pool para un servidor compartido, Oracle puede usar la shared pool principalmente para guardar en caché las sentencias compartidas de sql y evitar la sobrecarga causada por la disminución de la caché de sql compartida. Además la memoria para backup y operaciones de recuperación y para procesos de I/O del servidor es asignada en buffers de algunos cientos de kilobytes, por lo que la large pool mucho más capaz de satisfacer dicha demanda de memoria que la shared pool.

Java Pool

La memoria java pool es usada en la memoria del servidor para todas las sesiones que utilicen código java y datos en la JVM. Esta memoria es usada de diferentes maneras dependiendo del modo en el que la base de datos esté corriendo.

Algunas de las cuales son:
  • Análisis sintáctico de código y scripts en Java.
  • Tareas de instalación relacionada con aplicaciones Java.
  • Procedimientos almacenados de código Java.
La Java Pool utiliza el algoritmo LRU (Least-Recently-Used), el cual se encarga de mantener en memoria el código Java que se utiliza con mayor frecuencia.

domingo, 11 de marzo de 2018

C O L O R & L O O P




;EMU8086
;LENGUAJES DE INTERFAZ 7:00-8:00   
;JUEVES-08-03-2018
;LUZ EDITH PEREZ & SARAHI CM      

org 100h

.stack 64

.data
titulo db 13,10,'COLOR & LOOP',13,10,'$'

mensaje db '-Presione 0 para volver al inicio',13,10,'-Presione 1 para azul',13,10,'-Presione 2 para morado',13,10,'$'

mensaje1 db 'Pantalla en color azul',13,10,'$'
mensaje2 db 'Pantalla en color morado',13,10,'$'


.code 
                                               
inicio:          ;Funcion--------------------------------------

 mov ax,@data     ;llamar a .data
 mov ds,ax        ;guardar los datos en ds

 lea dx,titulo    ;imprimir el mensaje
 mov ah,9h
 int 21h

 lea dx,mensaje   ;imprimir mensaje
 mov ah,9h
 int 21h
 ;---------------------------------------------------
 mov ah,08              ;pausa y espera a que el usuario precione una tecla
 int 21h                ;interrupcion para capturar
 cmp al,48              ;
 je llamarDefault
 cmp al,49      
 je llamarAzul    
 cmp al,50       
 je llamarMorado  
  
 jmp fin

fin:
 mov ax,4c00h       ;funcion que termina el programa
 int 21h

llamarDefault:      ;llama al procedimiento
 CALL DEFAULT

llamarAzul:
 CALL AZULPROC      ;llama al procedimiento

llamarMorado:
 CALL MORADOPROC    ;llama  al procedimiento



DEFAULT PROC NEAR
 mov ah, 0      ;limpia el registro
 mov al,3h      ;modo de texto
 int 10h

 mov ax,0600h
 mov bh,07h
 mov cx,0000h
 mov dx,184Fh
 int 10h
 
 CALL inicio
DEFAULT ENDP
                   
AZULPROC PROC NEAR
 mov ah,0
 mov al,3h ;modo de texto
 int 10h

 mov ax,0600h
 mov bh,1fh
 mov cx,0000h ;0 color negro , f color de letra blanca
 mov dx,184Fh
 int 10h       ;interrupcion de video
 
 mov ah,9h
 lea dx,mensaje1

 mov cl,0ah ; el numero de repeticiones 
aLOOP:

   int 21h
  
loop aLOOP 
 
 CALL inicio
 RET
AZULPROC ENDP

MORADOPROC PROC NEAR
 mov ah,0
 mov al,3h
 int 10h   ;interrupcion de video
  
 mov ax,0600h
 mov bh,5fh
 mov cx,0000h ;es la esquina superior izquierda reglon: columna
 mov dx,184Fh ;es la esquina inferior derecha reglon: columna
 int 10h     ;interrupcion de video


 mov ah,9h
 lea dx,mensaje2
mov cl,0ah
mLOOP:

 int 21h

loop  mLOOP  


 CALL inicio
 RET
MORADOPROC ENDP


end inicio