You are on page 1of 37

INSTITUTO TECNOLOGICO DE TAPACHULA

INGENIERIA EN SISTEMAS COMPUTACIONALES

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

INVESTIGAR

LA ESTRUCTURA INTERNA DE LAS

MANEJADORES DE BASE DE DATOS

MORALES GARCIA WILBER MAURICIO

6to. SEMESTRE

Tapachula, Chiapas a 20 de Febrero 2015

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

INTRODUCCION
Una base de datos o banco de datos es un conjunto de datos
pertenecientes a un mismo contexto y almacenados
sistemticamente para su posterior uso. En este sentido, una
biblioteca puede considerarse una base de datos compuesta en
su mayora por documentos y textos impresos en papel e
indexados para su consulta. Actualmente, y debido al desarrollo
tecnolgico de campos como la informtica y la electrnica, la
mayora de las bases de datos estn en formato digital
(electrnico), y por ende se ha desarrollado y se ofrece un amplio
rango de soluciones al problema del almacenamiento de datos

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

MySQL
En la siguiente figura se muestra la estructura interna de MySQL, ms adelante se
describe el funcionamiento de cada una de sus partes.

A continuacin se enumeran cada parte de la estructura de MySQL mostradas en


la figura.

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Procesador Query

La mayora extensa de interacciones en el sistema ocurre cuando un usuario


desea visin o manipular los datos subyacentes en el almacenaje.A continuacin
se muestra la estructura del Procesador Query en MySQL y ms adelante la
explicacin de cada una de las partes que lo componen.

- Precompiler Encajado de DMLCuando una peticin se recibe de un cliente en


la capa de uso, es la responsabilidad del precompiler encajado de DML (lengua de
manipulacin de datos) extraer las declaraciones relevantes del SQL encajadas en
los comandos del API del cliente, o traducir al cliente ordena en las declaraciones
correspondientes del SQL.- Recopilador de DDL
Las peticiones de tener acceso a las bases de datos de MySQL recibidas de un
administrador son procesadas por el recopilador de DDL (idioma de definicin de
datos). El recopilador de DDL compila los comandos (que son declaraciones del
SQL) de obrar recprocamente directamente con la base de datos. El
administrador y
las utilidades administrativas no exponen un interfaz, y por lo tanto se ejecutan
directamente al servidor de MySQL. Por lo tanto, el precompiler encajado de DML
no lo procesa, y ste explica la necesidad de un recopilador de DDL.- Programa
de anlisis de Query
El paso siguiente implica el analizar de la pregunta de MySQL. En esta etapa, el
objetivo del programa de anlisis de la pregunta es crear una estructura
arborescente del anlisis basada en la pregunta para poderla entender fcilmente
por los otros componentes ms adelante en la tubera.
-Preprocesador Query
La pregunta analiza el rbol, segn lo obtenido del programa de anlisis de la
pregunta, despus es utilizada por el preprocesador de la pregunta comprobar el
sintaxis del SQL y comprobar la semntica de la pregunta de MySQL para
determinarse si la pregunta es vlida.
- Encargado De Security/Integration
Una vez que la pregunta de MySQL se juzgue para ser vlida, el servidor de

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

MySQL necesita comprobar el Access Control List para saber si hay el cliente.
- Optimizador De Query
MySQL utiliza el optimizador de la pregunta para ejecutar preguntas del SQL tan
rpidamente como sea posible. Consecuentemente, sta es la razn por la que el
funcionamiento de MySQL es rpido comparado al otro RDBMS. La tarea del
optimizador de la pregunta de MySQL es analizar la pregunta procesada para
considerar si puede aprovecharse de algunas optimizaciones que permitan que
procese la pregunta ms rpidamente.
- Motor De la Ejecucin
Una vez que el optimizador de la pregunta de MySQL haya optimizado la pregunta
de MySQL, la pregunta se puede entonces ejecutar contra la base de datos. Esto
es realizada por el motor de la ejecucin de la pregunta, que despus procede a
ejecutar las declaraciones del SQL y tiene acceso a la capa fsica de la base de
datos de MySQL.

Manejador de Transaccin y Recuperacin


La estructura del manejador de transaccin y recuperacin de MySQL se muestra
en la siguiente imagen, y a continuacin se explica su funcionamiento.

- Gestor de transacciones
Una transaccin es una sola unidad del trabajo que tiene unos o ms comandos
de MySQL en ella. El gestor de transacciones es responsable de cerciorarse de
que la transaccin est registrada y ejecutada atmico.
- Encargado Del Control Concurrencia apropiados de datos en la base de
datos del encargado de recurso.
Una vez que se adquiera la cerradura, slo las operaciones en una transaccin
pueden manipular los datos. Si una diversa transaccin intenta manipular los
mismos datos bloqueados, el encargado del concurrencia-control rechaza la
peticin hasta que la primera transaccin es completa.

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

- Encargado Del Registro


El encargado del registro es responsable de registrar la operacin de e mismo
ejecutada en la base de datos. Hace tan almacenando el disco del entrar a travs
del encargado del almacenador intermediario. Las operaciones en el registro se
almacenan como comandos de MySQL. As, en el caso de un fallo del sistema,
ejecutar cada comando en el registro traer detrs la base de datos a su estado
estable pasado.
- Encargado De la Recuperacin
El encargado de la recuperacin es responsable de restaurar la base de datos a
su estado estable pasado. Hace tan usando el registro para la base de datos, que
se adquiere del encargado del almacenador intermediario, y ejecutando cada
operacin en el registro. Desde los registros del encargado del registro todas las
operaciones realizadas en la base de datos (del principio de la vida de la base de
datos), ejecutando cada comando en el fichero de diario recuperaran la base de
datos a su estado estable pasado.

Manejador de Almacenado

El almacenaje se hace fsicamente en un cierto tipo de almacenaje secundario, no


obstante el acceso dinmico de este medio no es prctico. As, todo el trabajo se
hace a travs de un nmero de almacenadores intermediarios. Los almacenadores
intermediarios residen en memoria principal y virtual y son manejados por un
encargado del almacenador intermediario. Este encargado trabaja conjuntamente
con dos otras entidades del encargado relacionadas con el almacenaje: el
encargado de recurso y el encargado del almacenaje. A continuacin se muestra
la estructura:

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

- Encargado Del Almacenaje


En el nivel ms bajo existe el encargado del almacenaje. El papel del encargado
del almacenaje es mediar peticiones entre el encargado del almacenador
intermediario y el almacenaje secundario. El encargado del almacenaje hace
peticiones a travs del regulador de disco subyacente (y a veces del sistema
operativo) de recuperar datos del disco fsico y los divulga de nuevo al encargado
del almacenador intermediario.
- Encargado Del Buffer
El papel del encargado del almacenador intermediario es asignar los recursos de
la memoria para el uso de la visin y los datos de la manipulacin. El encargado
del almacenador intermediario toma en peticiones ajustadas a formato y decide
cunto memoria a asignar por almacenador intermediario y cunta almacenadores
intermediarios a asignar por la peticin. Todas las peticiones se hacen del
encargado de recurso.
- Encargado De Recurso
El propsito del encargado de recurso es aceptar peticiones del motor de la
ejecucin, puesto les en peticiones de la tabla, y solicita las tablas del encargado
del almacenador intermediario. El encargado de recurso recibe referencias a los
datos dentro de la memoria del encargado del almacenador intermediario y vuelve
estos datos a las capas superiores.
Aplicaciones e Interfaces

La capa de aplicacion de MySQL es donde los clientes y los usuarios obran


recprocamente con el MySQL RDBMS.
Hay tres componentes en esta capa como puede ser visto en el diagrama acodado
de la arquitectura de MySQL en la siguiente imagen.

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Estos componentes ilustran las diversas clases de usuarios que puedan obrar
recprocamente con el MySQL RDBMS, que son los administradores, los clientes y
los usuarios de la pregunta. Los administradores utilizan el interfaz y las utilidades
administrativos

PROCESOS EN MYSQL
Observa la lista de procesos para saber qu est haciendo cada usuario y el
estado del proceso, para terminarlo si es necesario.
Este ejemplo termina el ID 895.

mysql> show processlist;


show processlist;
Este comando nos devuelve la lista de procesos con la informacin sobre
parmetros como ID, Usuario, Host, Base de Datos, Tipo de Commando, y ms
informacin adicional. Por ejemplo:
Id: 895
User: root
Host: localhost
y as con todos los procesos que se estn ejecutando en ese momento.

mysql>kill 895
Tambin se puede hacer desde la linea de comandos llamando a mysqladmin:
[root@f mysql]# mysqladmin processlist
[root@f mysql]# mysqladmin kill 895

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Memoria
Todo mecanismo de funcionamiento tiene unas caractersticas particulares. Las
caractersticas en las que podemos encontrar diferencias entre los distintos
mecanismos de almacenamiento son principalmente:

Almacenamiento fsico: aqu se incluye desde consideraciones del tamao


de pgina de tablas e ndices, el soporte de almacenamiento hasta el formato
de almacenamiento en disco.

Cach de memoria: diferentes aplicaciones responden mejor a ciertas


estrategias de cach que otras, por lo que aunque algunos cach de memoria
son comunes a todos los mecanismos (como los usados para conexiones de
usuario o al cach de sentencias de alta velocidad), otros son particulares a
cada uno de ellos.

Concurrecia: algunas aplicaciones necesitan granularidad de bloqueo ms


fina (i.e. bloqueo a nivel de fila) que otras. La eleccin de la estrategia de
bloqueo adecuada puede reducir tiempos de espera y aumentar la prestacin
general. Este factor incluye las capacidades concurrencia multi-versin
(MVCC) o toma de "instantneas".

Integridad referencial: caracterstica que responde a la necesidad de que el


servidor asegure la integridad referencial de la base de datos mediante claves
externas.

Particionado: algunos mecanismos permiten que diferentes secciones de una


misma tabla pueden ser almacenadas en diferentes porciones de disco. Las
reglas por las que se realiza este particionado se denominan funciones, que en
MySQL pueden ser el mdulo, lista de rangos o valores, una funcin
de hash interna o una funcin lineal.

Prestaciones: las diferencias pueden estar causadas por los hilos mltiples
para operaciones en paralelo, la concurrencia de hilos, la toma de puntos de
control y el manejo de inserciones masivas.

Soporte de ndices: diferentes aplicaciones necesitan diferentes estrategias


en cuanto a ndices. Cada mecanismo de almacenamiento tiene sus propios
mtodos de indexacin -aunque los B-tree son comunes a casi todos ellosaunque algunos carecen de ndices.

Soporte de transacciones: no todas las aplicaciones necesitan


transacciones, pero aqullas que las necesiten tendrn definidos de manera

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

precisa los requisitos ACID que deben satisfacer los mecanismos adecuados a
ellas.

Caractersticas varias: aqu se puede incluir soporte para operaciones geoespaciales y restricciones de seguridad para ciertas operaciones de
manipulacin de datos

PostgreSQL

El siguiente grfico muestra de forma esquemtica las entidades involucradas


en el funcionamiento normal del gestor de bases de datos:

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

PostgreSQL est basado en una arquitectura cliente-servidor. El programa


servidor se llama postgres y entre los muchos programas cliente tenemos, por
ejemplo, pgaccess (un cliente grfico) y psql (un cliente en modo texto).
Un proceso servidor postgres puede atender exclusivamente a un solo cliente;
es decir, hacen falta tantos procesos servidor postgres como clientes haya. El
proceso postmaster es el encargado de ejecutar un nuevo servidor para cada
cliente que solicite una conexin.
Se llama sitio al equipo anfitrin (host) que almacena un conjunto de bases de
datos PostgreSQL. En un sitio se ejecuta solamente un proceso postmaster y
mltiples procesos postgres. Los clientes pueden ejecutarse en el mismo sitio o
en equipos remotos conectados por TCP/IP.
Es posible restringir el acceso a usuarios o a direcciones IP modificando las
opciones del archivo pg_hba.conf, que se encuentra en

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

/etc/postgresql/pg_hba.conf.
Este archivo, junto con /etc/postgresql/postgresql.conf son particularmente
importantes, porque algunos de sus parmetros de configuracin por defecto
# configure --enable-nls enable-locale
Provocan multitud de problemas al conectar inicialmente y porque en ellos se
especifican los mecanismos de autenticacin que usar PostgreSQL para verificar
las credenciales de los usuarios.
Para habilitar la conexin a PostgreSQL desde clientes remotos, debemos verificar
el parmetro tcpip_socket = true en el fichero /etc/postgresql/postgresql.conf.
A continuacin, para examinar los mtodos de autenticacin y las posibilidades de
conexin de clientes externos, debemos mirar el fichero /etc/postgresql/
pg_hba.conf, donde se explicita la accin que hay que emprender para cada
conexin proveniente de cada host externo, o grupo de hosts.

PROCESOS EN POSTGRESQL
En la realidad tendremos seguramente multiples procesos en esta situacin.
Los puntos a seguir sern:
1. Intentar identificar via el sistema operativo los procesos postgres de interes en el
servidor, en nuestro caso los que estn bloqueando el acceso y los que estn
esperando.
Para ello podemos ejecutar este comando para obtener los posibles candidatos a
estar bloqueando:

[root@server]#> ps ax | grep "postgres:" | grep "idle in transaction"


21954 ?

Ss

0:00 postgres: postgres test001 129.240.10.210(49417) idle in transaction

Y este para los que estn esperando:

[root@server]#> ps ax | grep "postgres:" | grep "waiting"


13836 ?

Ss

0:00 postgres: postgres test001 129.240.10.210(49745) UPDATE waiting

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

2. Una vez que tengamos informacin sobre los posibles procesos involucrados en el
problema, usaremos PSQL para verificar y obtener mas informacin. Vamos a
utilizar la informacin en los catalogos de sistema pg_stat_activity,
pg_locks ypg_class.

Primero vamos a verificar la informacin contenida en pg_stat_activity sobre estos


dos procesos, 21954 y 13836. La informacin la ordenaremos por el
atributoquery_start para tener los procesos ordenados cronolgicamente.

[server:5432/postgres@test001][]# \x
Expanded display is on.

[server:5432/postgres@test001][]# SELECT datid,


datname,
procpid,
usename,
current_query,
waiting,
xact_start,
query_start,
client_addr,
client_port
FROM pg_stat_activity
WHERE procpid IN (21954,13836)
ORDER BY query_start;

-[ RECORD 1 ]-+-------------------------------------------datid

| 16774

datname

| test001

procpid

| 21954

usename

| postgres

current_query |

in transaction

waiting

| f

xact_start

| 2009-04-30 14:20:27.860236+02

query_start

| 2009-04-30 14:20:41.300738+02

client_addr

| 129.240.10.210

ADMINISTRACION DE BASE DE DATOS


client_port

L.I. NICOLAS CABRERA HIDALGO

| 49417

-[ RECORD 2 ]-+-------------------------------------------datid

| 16774

datname

| test001

procpid

| 13836

usename

| postgres

current_query | UPDATE tellers SET bid = 100 where tid = 1;


waiting

| t

xact_start

| 2009-04-30 14:21:34.370305+02

query_start

| 2009-04-30 14:21:45.243395+02

client_addr

| 129.240.10.210

client_port

| 49745

Podemos confirmar que los dos procesos estn accediendo la misma base de datos
y que 21954 empezo antes que 13836. Los datos contenidos en client_addr y
client_port nos servirn ms tarde para averiguar que proceso en la maquina cliente
129.240.10.210 (49417) est usando el proceso 21954 en nuestro servidor.
A continuacin podemos obtener los datos que nos proporciona pg_locks para
confirmar los bloqueos generados por estos dos procesos.

[server:5432/postgres@test001][]# SELECT pg_class.relname,


pg_locks.mode,
substr(pg_stat_activity.current_query,1,30),
age(now(),pg_stat_activity.query_start) as "age",
pg_stat_activity.procpid
FROM pg_stat_activity,pg_locks
LEFT OUTER JOIN pg_class ON (pg_locks.relation = pg_class.oid)
WHERE pg_locks.pid=pg_stat_activity.procpid
AND pg_stat_activity.datname = 'test001'
AND pg_stat_activity.procpid in (21954,13836)
ORDER BY age DESC;

relname

mode

substr

age

| procpid

--------------+------------------+--------------------------------+-----------------+--------tellers_pkey | AccessShareLock

in transaction

| 01:06:41.260819 |

21954

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

| ExclusiveLock

in transaction

| 01:06:41.260819 |

21954

| ExclusiveLock

in transaction

| 01:06:41.260819 |

21954

| RowShareLock

in transaction

| 01:06:41.260819 |

21954

| ShareLock

| UPDATE tellers SET bid = 100 w | 01:05:37.318162 |

13836

| ExclusiveLock

| UPDATE tellers SET bid = 100 w | 01:05:37.318162 |

13836

| ExclusiveLock

| UPDATE tellers SET bid = 100 w | 01:05:37.318162 |

13836

tellers_pkey | RowExclusiveLock | UPDATE tellers SET bid = 100 w | 01:05:37.318162 |

13836

tellers

tellers

| ExclusiveLock
tellers

| UPDATE tellers SET bid = 100 w | 01:05:37.318162 |

13836

| RowExclusiveLock | UPDATE tellers SET bid = 100 w | 01:05:37.318162 |

13836

(10 rows)

En est informacin podemos corroborar que el primer proceso en la lista (21954)


con una transaccion abierta y sin actividad tiene definido un bloqueo
"RowShareLock" en la tabla "tellers" (este tipo de bloqueo es el usado cuando
ejecutamos SELECT FOR UPDATE).
El tipo de bloqueo "RowShareLock", bloquea entre otros, a cualquier operacin que
necesite un bloqueo del tipo "ExclusiveLock" (como el UPDATE de nuestro proceso
13836)
3. Una vez que hemos verificado que el proceso 21954 es el causante de todos
nuestros problemas tenemos que hacer algo con el mismo. Una manera de arreglar
el problema seria matar al proceso desde la linea de comandos en el servidor. A mi
personalmente, esta manera de proceder no me gusta y no me parece adecuada,
deberia de usarse solamente como un ltimo recurso y siempre estando de acuerdo
con los encargados de la aplicacin.
Lo que yo aconsejo hacer es encontrar el proceso en la maquina cliente que est
utilizando el proceso 21954 en el servidor y arreglarlo matarlo.
4. Para encontrar el proceso cliente causante del problema utilizamos la IP y el puerto
remoto usado por 21954 (129.240.10.210 : 49417)
Nos conectamos a 129.240.10.210 y ejecutamos un par de comandos que nos diran
el proceso que buscamos.

[root@server ~]$ ssh root@129.240.10.210


[root@129.240.10.210 ~]$ netstat -pn |grep 129.240.10.210 |grep 49417

ADMINISTRACION DE BASE DE DATOS


tcp

0 129.240.10.210:49417

L.I. NICOLAS CABRERA HIDALGO


129.240.255.222:5432

ESTABLISHED 24509/psql

En la linea obtenida podemos ver al final el numero local del proceso que buscamos
(24509/psql)

[root@129.240.10.210 ~]$ ps axu |grep psql | grep 24509


postgres 24509

0.0

0.0 77288 3144 pts/1

S+

13:53

0:00 psql -h server test001

5. Lo nico que nos queda hacer es contactar con el encargado de este proceso para
que arregle la situacin matarlo controladamente para solucionar todos los
problemas en nuestra base de datos. En muchos casos estamos hablando de scripts
programas que se han colgado y la nica manera de arreglarlos es matandolos.

6.

[root@129.240.10.210 ~]$ kill 24509

De vuelta en el servidor de base de datos podemos comprobar que todos los procesos con
problemas de bloqueos han desaparecido despues de matar al causante del bloqueo.

Memoria Potsgre SQL


Ajuste de memoria en PostgreSQL
Configuracin en postgresql.conf
Para cargar fcilmente grandes cantidades de datos a una base de datos de PostgreSQL,
es posible que deba aumentar los valores de shared_buffers y max_locks_per_transaction
en el archivo postgresql.conf.
shared_buffers
El parmetro shared_buffers designa la cantidad de memoria que se utiliza para los bfers
de memoria compartida. La documentacin de PostgreSQL indica que, por razones de
rendimiento, es probable que deba utilizar una configuracin mayor al valor mnimo de
128 KB o 16 KB multiplicado por el nmero que se configur como el valor de
max_connections. Se recomienda configurar shared_buffers para utilizar varias decenas
de megabytes en las instalaciones de produccin.
Cuando carga grandes cantidades de datos, es muy probable que necesite una mayor
configuracin de shared_buffers que el valor predeterminado de 32 MB. Despus de
cambiar este parmetro en el archivo postgresql.conf, deber reiniciar el cluster de base
de datos.
max_locks_per_transaction
El valor de max_locks_per_transaction indica la cantidad de objetos de base de datos que
se pueden bloquear de manera simultnea. En la mayora de los casos, el valor

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

predeterminado de 64 es suficiente. Sin embargo, cuando se carga una gran cantidad de


datasets (por ejemplo, varios miles) a la vez, la cantidad de bloqueos de objeto
concurrentes para la transaccin puede exceder 64.
No hay una relacin de uno a uno entre bloqueos concurrentes y la cantidad de datasets;
en otras palabras, si carga 3.000 datasets, no debe aumentar el valor de
max_locks_per_transaction a 3.000. Primero aumente el valor a 100 antes de aumentar
las cargas.
Cuando cambia el valor del parmetro max_locks_per_transaction, debe reiniciar el
servidor.
El aumento del valor de alguno de estos parmetros puede producir que la base de datos
solicite ms memoria compartida que la que el sistema operativo (SO) UNIX tiene
disponible. Para obtener ms informacin sobre cmo puede aumentar la configuracin de
la memoria compartida para el SO, consulte "Administrar recursos de kernel" en
la documentacin de PostgreSQL.

Mejorar el rendimiento de la consulta espacial de SQL


Cuando ejecuta consultas de SQL que devuelven columnas espaciales de ST_Geometry
desde una tabla de negocios, puede aumentar el rendimiento de la consulta si configura
una variable de entorno del sistema, ST_GEOMETRY_OUTPUT_FORMAT, con salida hacia
el tipo ST_Geometry en vez de la representacin de texto conocido extendido (WKT).
Por defecto, la variable ST_GEOMETRY_OUTPUT_FORMAT se configura como TYPE, que
significa que se devuelve una representacin hexabinaria. Es necesario para crear una
copia de seguridad til de la geodatabase. nicamente debe cambiar esta variable a
ST_GEOMETRY si desea mejorar el rendimiento de la consulta SQL. Si configura esta
variable porque planea hacer varias consultas espaciales de SQL, asegrese de quitarla
despus de terminar las consultas, a continuacin reinicie el cluster de base de datos de
PostgreSQL.
La variable se debe configurar en el equipo donde se ejecuta PostgreSQL.
Para un SO Linux, configure la variable para el shell desde donde emite las consultas SQL.
Para el shell bash, la sintaxis es la siguiente:
ST_GEOMETRY_OUTPUT_FORMAT=ST_GEOMETRY

Para un shell csh, la sintaxis es


setenv ST_GEOMETRY_OUTPUT_FORMAT ST_GEOMETRY

En Windows, cree una variable de entorno del sistema en las propiedades del sistema.
Nombre de la variable: ST_GEOMETRY_OUTPUT_FORMAT
Valor de la variable: ST_GEOMETRY
Despus de configurar la variable, debe reiniciar el cluster de base de datos de
PostgreSQL.

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Estructura general sybase


Sybase Control Center (SCC) es una nueva herramienta de gestin que provee un conjunto
integrado de capacidades para la administracin, monitoreo y configuracin de diversas lneas de
productos Sybase. Usted puede usarla para monitorear servidores Sybase a travs de un navegador
web estndar con el "plug-in" Flash Player de Adobe. SCC est construido sobre la tecnologa
Adobe Flex, la cual est especficamente diseada para desarrollar Aplicaciones Internet Ricas (o
RIAs por su nombre en ingls, "Rich Internet Applications"). La versin 3.0 resuelve los
requerimientos de monitoreo de Adaptive Server Enterprise (ASE) y Replication Server.

Figura 1 Vista de monitoreo de ASE en Sybase Control Center 3.0

Capacidades de SCC
Montireo en Tiempo Real de Rendimiento y Disponibilidad
SCC brinda capacidades de monitoreo en tiempo real e histrico. Usted puede usar SCC para
monitorear la disponibilidad, estado de recursos y salud golbal de ASE y Replication Server. Los

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

recursos que se pueden monitorear incluyen procesos, bases de datos, dispositivos, colas, caminos
de replicacin, etc. El acceso a stas estadsticas le permite detectar problemas de aplicacin a
tiempo y de manera precisa, facilitando el afinamiento del ambiente Sybase.

Figura 2 Vista detallada de bases de datos monitoreadas, incluyendo procesos monitoreados, as


como segmentos usados.
Repositorio de Datos Histricos
SCC tiene un repositorio central que almacena mtricas de rendimiento y monitoreo. Es fcil
generar reportes grficos a partir de stos datos y usarlo para anlisis de tendencias y otros
propsitos de planeacin.
Notificacin de Eventos
SCC incluye un sistema de alertas. Es posible enviar alertas en tiempo real tanto a computadores y
dispositivos mviles por correo electrnico, brindando notificaciones en tiempo real, en cualquier
momento y lugar. Los umbrales de alrta pueden ser personalizados para responder a los
requerimientos especficos del negocio.
Seguridad
SCC brinda capacidades de "single sign on". Cuando usted se conecta a SCC, no se requiere
conectarse a cada producto monitoreado por separado. Adicionalmente, SCC utiliza autorizaciones
basadas en roles para que los administradores puedan asignar diferentes roles a usuarios
basndose en las tareas de monitoreo que requieran llevar a cabo.

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Interfaz Grfica
Ya que SCC es una RIA, todas las caractersticas y funcionalidades son presentadas a travs de una
interfaz grfica construida con Adobe Flash. SCC presenta los "dashboards", grficas, reportes,
vistas y perspectivas que destacan la condicin de los servidores, haciendo que sea fcil distinguir
qu sistemas requieren atencin.
Vista de Topologa
Con servidores en mltiples ubicaciones geogrficas, las asociaciones y conexiones pueden volverse
complejas. La vista de topologa brinda una representacin grfica de dichas relaciones, ilustrando
cmo se encuentran conectados los servidores y cmo interactan unos con otros.

Figura 3 La vista de topologa y el "dashboard" de Replication Server ilustran que una conexin a
ASE
(abajo a la izquierda) est suspendida.

Principales Capacidades de Monitoreo para ASE


Pantalla de Resumen del Servidor
La pantalla de resumen del servidor muestra informacin resumida sobre el servidor monitoreado,
incluyendo el estado de recursos clave a nivel de servidor, tales como CPUs, dispositivos de disco,
conexiones de usuario y asignacin de memoria. Esta pantalla tambin provee informacin sobre el
uso de recursos configurables del servidor, asignacin de licencias con SySAM y alertas que han
sido generadas para ste servidor.

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Monitoreo de Procesos
SCC brinda informacin detallada sobre la actividad de procesos y procesos que bloquean,
permitindole ubicar rpidamente procesos que estn evitando que otros se ejecuten. SCC tambin
identifica los procesos que estn consumiendo la mayor cantidad de recursos del servidor, a travs
de una gran variedad de criterios, tales como trfico en la red, I/O de disco y CPU.

Figura 4 Use el men de categoras arriba a la derecha para identificar los procesos que
consumen
la mayor cantidad de recursos.
Monitoreo de Base de Datos
El monitor de bases de datos ASE incluye estado de bases de datos, uso de espacio de datos y log,
asignacin y uso de segmentos, mtricas de uso de objetos y estado de los backups.
Monitores de Cachs
Lo monitores de cachs de datos, procedimientos y sentencias brindan informacin detallada de
mtricas de uso para cada uno de estos recursos clave.

Principales Capacidades de Monitoreo para Replication


Server

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Monitoreo del Rendimiento del Sistema de Replicacin


SCC monitorea el sistema completo de replicacin, incluyendo Replication Server, hilos de
Replication Agent del lado de ASE y ASE. SCC tambin monitorea los agentes de replicacin para
bases de datos Oracle, Microsoft y UDB2. SCC recolecta estadsticas del ambiente de replicacin y
muestra actividad y lantencia en una grfica. Las estadsticas de monitoreo pueden ser usadas para
analizar el rendimiento del sistema y para asistir al afinamiento del mismo.
Vista de "Dashboard" y Grfica de Estadsticas
Usando una presentacin grfica, SCC brinda una vista rpida de dos aspectos importantes de la
replicacin: latencia y transferencia. Usted puede ver la cantidad de datos que se estn
transfiriendo y la cantidad de tiempo que se toma la transferencia, todo en un mismo "dashboard".
A travs de sta ayuda grfica, usted puede identificar eficientemente problemas potenciales.
Topologa de Replicacin
Usted puede usar la vista de topologa para ilustrar el flujo de datos entre servidores en un
ambiente de replicacin. Los conos de producto y las lneas conectoras muestran la condicin del
servidor y el estado de las conexiones.

Plataformas Soportadas
Servidor SCC
- Windows x86/x86-64
- Linux x86/x86-64
- HP Itanium
- Sun Solaris Sparc 64-bit
Browser
- Firefox 3.0 on Windows x86/x86-64, Linux x86/x86-64 y Sun Solaris Sparc
- Internet Explorer 6 & 7
Soporte a Productos
- La versin 3.0 soporta ASE 15.0.2 & 15.0.3, Replication Server 12.6 & 15.x

Procesos Sybase

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Afinacin de Adaptive Server Enterprise para el rendimiento puede implicar varios


procesos en el anlisis del "Por qu?" De bajo rendimiento, la contencin, la optimizacin
y el uso.
Este manual cubre los conceptos bsicos para entender e investigar preguntas de
desempeo en Adaptive Server. Adems, le gua en cmo buscar los lugares que puedan
constituir un obstculo para el rendimiento.
Los manuales restantes para el rendimiento y la serie de sintonizacin son:
Rendimiento y ajuste: Bloquear
Adaptive Server bloquea las tablas, pginas de datos, o filas de datos utilizadas actualmente
por las transacciones de activos mediante el bloqueo de ellos. El bloqueo es un mecanismo
de control de concurrencia: asegura la coherencia de los datos dentro ya travs de las
transacciones. Se necesita de bloqueo en un entorno multiusuario, ya que varios usuarios
pueden estar trabajando con los mismos datos al mismo tiempo.
ndices considerados cuidadosamente, construido en la cima de un buen diseo de base de
datos, son la base de una instalacin de alto rendimiento de Adaptive Server. Sin embargo,
la adicin de ndices sin un anlisis adecuado puede reducir el rendimiento general del
sistema. Insertar, actualizar y eliminar operaciones pueden llevar ms tiempo cuando un
gran nmero de ndices necesitan ser actualizados.
Rendimiento y ajuste: Optimizer y Planes abstractos
El Optimizador en Adaptive Server tiene una consulta y encuentra la mejor manera de
ejecutarlo. La optimizacin se realiza con base en las estadsticas de una base de datos o
tabla. El plan optimizado permanece en efecto hasta que las estadsticas se actualizan o la
consulta cambia. Usted puede actualizar las estadsticas de toda la tabla o por muestreo en
un porcentaje de los datos.
Adaptive Server puede generar un plan abstracto para una consulta, y guardar el texto y su
plan abstracto asociado en la tabla sysqueryplanssystem. Planes abstractos proporcionan
una alternativa a las opciones que se deben especificar en el lote o una consulta con el fin
de influir en las decisiones del optimizador. El uso de planes abstractos, puede influir en la
optimizacin de una sentencia SQL sin tener que modificar la sintaxis de la sentencia.

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Rendimiento y ajuste: Monitoreo y Anlisis


Adaptive Server utiliza informes sobre el seguimiento del servidor. Este manual explica
cmo se obtienen y utilizan para el seguimiento y la optimizacin de las estadsticas. El
sp_sysmon procedimiento almacenado produce un gran informe que muestra el rendimiento
de Adaptive Server.
Tambin puede utilizar el Monitor de Sybase en Sybase Central para obtener informacin
en tiempo real sobre el estado del servidor.
Cada uno de los manuales se ha creado para cubrir la informacin especfica que pueda ser
utilizado por el administrador del sistema y el administrador de base de datos.

Sybase: memoria
Un lmite de recursos es un conjunto de parmetros
especificados por el administrador del sistema para evitar
consultas y transacciones desde los inicios de sesin o
aplicaciones individuales de monopolizar los recursos del
servidor.
Los lmites de recursos estn obligados a rangos de tiempo,
lo que permite al administrador del sistema define con
precisin cundo deben hacerse cumplir. Cuando el
administrador del sistema modifica un lmite de recursos,
todos los usuarios registrados en ver el cambio, incluyendo
el administrador del sistema
El conjunto de parmetros para un lmite de recursos incluye
la hora del da para hacer cumplir el lmite y el tipo de
accin a tomar. Por ejemplo, puede evitar enormes informes
que se ejecute en momentos crticos del da, o matar a una
sesin cuya consulta produce productos cartesianos no
deseados.

Estructura general SQL Server

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Qu es Microsoft SQL Server?


Microsoft SQL Server es un sistema para la gestin de bases de datos producido por
Microsoft basado en el modelo relacional cuya principal funcin es la de almacenar y
consultar datos solicitados por otras aplicaciones, sin importar si estn en la misma
computadora, si estn conectadas a una red local o si estn conectadas a travs de
internet (plataforma Cloud-Ready).

A quin le sirve Microsoft SQL Server?

Retomar la utilidad de una base de datos. o Industrias o Bancos o Compaas manufactureras o


Empresas o Instituciones o Bsicamente, cualquier usuario que desee mantener
ordenados/organizados datos o informacin con el fin de acceder a ellos ms adelante Usuarios
potenciales: Uso de la CLOUD

Por qu elegir Microsoft SQL Server?


Seguridad Proteccin de datos Control de acceso Garanta de cumplimiento Criptografa
integrada. Flexibilidad mediante Optimizacin Cifrado transparente. reparto de mejorada
y Clave extensible. responsabilidades y capacidades Firma de mdulos de roles anidados.
enriquecidas con cdigos.
Evasin del acceso de respecto a versiones Certificados a partir de Administrador del
anteriores. bytes. Sistema.
Mayor flexibilidad Claves de seguridad Mayor cumplimiento para filtrar eventos no
usando AES256. de las normas deseados en el log de Soporte para hashes utilizando
Windows la auditora. SHA512 y SHA2 (256 y Group. Permite que las 512 bits).
Usuarios individuales. Aplicaciones escriban Seguridad de usuarios cdigo personalizado
con controles de TI dentro de log de la integrados, auditora

Por qu elegir Microsoft SQL Server? Integridad de datos La exigencia de integridad de


los datos garantiza la calidad de los datos de la base de datos. SQL Server proporciona los
siguientes mecanismos para exigir la integridad de los datos en una columna: o
Restricciones PRIMARY KEY o Restricciones FOREIGN KEY o Restricciones UNIQUE o
Restricciones CHECK o Definiciones DEFAULT o Permitir o denegar valores NULL SQL Server
admite distintos tipos de datos: Integer, Float, Decimal, Char, Varchar, binarios, texto,
entre otros, adems de que permite a los usuarios definir y usar su propio tipo de datos
compuestos (UDT)
Por qu elegir Microsoft SQL Server? 4.3 Concurrencia SQL Server permite que varios
clientes usen la misma base de datos al mismo tiempo controlando el acceso simultaneo
mediante 2 modos de control de concurrencia: o Pessimistic concurrency: Uso de
bloqueos exclusivos y compartidos. o Optimistic concurrency: Similar al uso de sistemas
subversin. Permite la creacin de una nueva fila cada vez que sta se actualiza,
almacenando las versiones anteriores de la fila en una tabla temporal junto con el ID de

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

la transaccin mediante la cual fueron actualizadas. Como lograr una concurrencia


eficiente? Usando la plataforma cloud-ready de Microsoft SQL
Por qu elegir Microsoft SQL Server? 4.3 Concurrencia (Cloud concurrency)
Por qu elegir Microsoft SQL Server? 4.4. Recuperacin Microsoft SQL Server 2012
cuenta con 3 formas diferentes de respaldo y recuperacin de bases de datos: o SQL
Server Management Studio (Herramienta grfica de administracin para SQL Server 2005 y
posteriores) (nivel de dificultad: fcil) o PowerShell (Interfaz de consola avanzada
disponible para Microsoft Windows con posibilidad de interactuar con SQL Server) (nivel
de dificultad: medio) o Transact-SQL (Lenguaje propio de SQL Server) (nivel de dificultad:
avanzado)
Por qu elegir Microsoft SQL Server? Diccionario de datos Conjunto de metadatos que
contiene las caractersticas lgicas de los datos que se van a utilizar en el sistema que se
programa, incluyendo nombre, descripcin, alias, contenido y organizacin. Microsoft SQL
Server contiene palabras reservadas como cualquier otro SGBD que permiten acceder a la
informacin de la estructura de una BD.

Procesos SQL Server


Hay ocasiones en las que necesitamos saber si un proceso lanzado en una base de datos se ha
ejecutado correctamente o se ha quedado colgado y est consumiendo los recursos del servidor.
Para poder averiguarlo, SQL SERVER nos ofrece esta herramienta.
En el Object Explorer, en Management hacemos doble click sobre Activity Monitor

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Y nos sale esta pantalla:

Donde podemos testear los diferentes procesos que se estn ejecutando sobre la base de datos.
Haciendo doble click sobre la lnea, obtenemos informacin (un poco crptica) sobre el proceso.

El smbolo
indica que el proceso se ha ejecutado correctamente. El Smbolo
proceso se encuentra en espera de ejecutarse.

indica que el

Si necesitamos hacer algo sobre una base de datos, como por ejemplo restaurarla y sale un mensaje
que dice que la Base de Datos est en uso, aqu podemos ver quien hay en la Base de Datos y
podemos matar el proceso haciendo:

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

En la columna Wait Time vemos el tiempo en milisegundos que lleva dicho proceso a la espera de
ejecutarse

En la columna Blocked By vemos si el proceso est bloqueado

Normalmente al dar al botn refrescar, cambia el nmero de procesos en ejecucin y desaparecen


los bloqueos si el proceso ha terminado ya.

Consideramos que todo est correcto si no hay elementos bloqueados. Si despus de dar
reiteradamente a Refresh el mismo proceso sigue bloqueando, podemos considerar que hay un
problema.
Ejecutando exec sp_lock podemos obtener una select de los procesos que se han quedado
bloqueados (se suele ejecutar sobre la base de datos tempdb)

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Memoria SQL Server

Opciones de configuracin de memoria del servidor


SQL Server 2014

Use las dos opciones de memoria de servidor Memoria de servidor mnima y Memoria de
servidor mxima para reconfigurar la cantidad de memoria (en megabytes) administrada
por el Administrador de memoria de SQL Server para un proceso de SQL Server usado por
una instancia de SQL Server.

El valor de configuracin predeterminado para Memoria de servidor mnima es 0 y para


Memoria de servidor mxima es 2147483647 MB. De forma predeterminada, SQL
Server puede cambiar sus requisitos de memoria de manera dinmica basndose en los
recursos del sistema disponibles.
Nota

Si establece el valor Memoria de servidor mxima en el valor mnimo, puede reducir


significativamente el rendimiento de SQL Server e incluso impedir que se inicie. Si no
puede iniciar SQL Server tras cambiar esta opcin, inicie esta herramienta mediante la
opcin de inicio f y restablezca la opcin max server memory a su valor anterior. Para
obtener ms informacin, consulte Opciones de inicio del servicio de motor de base de
datos.

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Cuando SQL Server utiliza la memoria de manera dinmica, realiza una consulta peridica
en el sistema para determinar la cantidad de memoria libre. El mantenimiento de esta
memoria libre evita la paginacin en el sistema operativo (SO). Si hay menos memoria
libre, SQL Server libera memoria para el sistema operativo. Si hay ms memoria libre, SQL
Server puede asignar ms memoria. SQL Server agrega memoria solo cuando su carga de
trabajo requiere ms memoria; un servidor inactivo no aumenta el tamao de su espacio de
direcciones virtuales.
Vea el ejemplo B sobre una consulta que devuelve la memoria que se est usando en estos
momentos. La memoria mxima del servidor controla la SQL Server asignacin de
memoria, incluidos el grupo de bferes, la memoria de compilacin, todas las cachs, las
concesiones de memoria, el bloqueo del Administrador de memoria y la memoria de clr
(bsicamente, cualquier distribuidor de memoria que se encuentre en
sys.dm_os_memory_clerks). La memoria de pilas de subprocesos, los montones de
memoria, los proveedores de servidor vinculado que no sea SQL Server y cualquier
memoria asignada por un DLL que no sea de SQL Server, no se controlan mediante la
memoria mxima del servidor.
SQL Server usa la API de notificacin de memoria QueryMemoryResourceNotification
para determinar el momento en que el Administrador de memoria de SQL Server puede
asignar y liberar memoria.
Se recomienda permitir a SQL Server utilizar memoria dinmicamente; sin embargo, puede
establecer las opciones de memoria manualmente y restringir la cantidad de memoria a la
que SQL Server puede obtener acceso. Antes de establecer la cantidad de memoria para
SQL Server, determine la configuracin de memoria apropiada restando de la memoria
fsica total la memoria necesaria para el sistema operativo y todas las dems instancias de
SQL Server (y otros usos del sistema, si el equipo no est dedicado totalmente a SQL
Server). Esta diferencia es la cantidad de memoria mxima que puede asignar a SQL
Server.

Establecer manualmente las opciones de memoria

Establezca Memoria de servidor mnima y Memoria de servidor mxima de manera que


abarquen un intervalo de valores de memoria. Este mtodo es til para que los
administradores de bases de datos o de sistemas configuren una instancia de SQL Server
junto con los requisitos de memoria de otras aplicaciones que se ejecutan en el mismo
equipo.
Use Memoria de servidor mnima para garantizar una cantidad mnima de memoria
disponible para el Administrador de memoria de SQL Server en una instancia de SQL
Server. SQL Server no asignar inmediatamente la cantidad de memoria especificada en
Memoria de servidor mnima durante el inicio. No obstante, cuando el uso de memoria ha
alcanzado este valor debido a una carga del cliente, SQL Server no puede liberar memoria a
menos que se reduzca el valor de Memoria de servidor mnima.

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Nota

No se garantiza que SQL Server asigne la cantidad de memoria especificada en Memoria


de servidor mnima. Si la carga en el servidor no precisa nunca que se asigne la cantidad
de memoria especificada en Memoria de servidor mnima, SQL Server se ejecutar con
menos memoria.
Cantidades mnimas de memoria disponibles para Memoria de servidor
Tipo de SO
mxima
32 bits
64 MB
64 bits
128 MB

Cmo configurar las opciones de memoria utilizando SQL Server Management


Studio

Utilice las dos opciones de memoria de servidor Memoria del servidor mnima y Memoria
del servidor mxima para reconfigurar la cantidad de memoria (en megabytes) administrada
por el Administrador de memoria de SQL Server para una instancia de SQL Server. De
forma predeterminada, SQL Server puede cambiar sus requisitos de memoria de manera
dinmica basndose en los recursos del sistema disponibles.

Procedimiento para configurar una cantidad fija de memoria


Para establecer una cantidad fija de memoria
1. En el Explorador de objetos, haga clic con el botn secundario en un servidor y
seleccione Propiedades.
2. Haga clic en el nodo Memoria.
3. En Opciones de memoria del servidor, escriba la cantidad que desea para Cantidad
mnima de memoria del servidor y Cantidad mxima de memoria del servidor.
Use la configuracin predeterminada si desea que SQL Server pueda cambiar
dinmicamente sus requisitos de memoria segn los recursos del sistema
disponibles. La configuracin predeterminada para min server memory es 0, y para
max server memory es 2147483647 megabytes (MB).

Maximizar el rendimiento para aplicaciones de red

Para optimizar el uso de memoria del sistema para SQL Server se debe limitar la cantidad
de memoria utilizada por el sistema para el almacenamiento en memoria cach de archivos.
Para limitar la memoria cach del sistema de archivos, hay que asegurarse de que no est
activada la opcin Maximizar el rendimiento para compartir archivos. Puede especificar la
cantidad mnima de memoria cach del sistema de archivos seleccionando Minimizar la
memoria usada o Balance.

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Para comprobar la configuracin actual de su sistema operativo


1. Haga clic en Inicio y en Panel de control, haga doble clic en Conexiones de red y, a
continuacin, haga doble clic en Conexin de rea local.
2. En la pestaa General, haga clic en Propiedades, seleccione Compartir impresoras y
archivos para redes Microsoft y, a continuacin, haga clic en Propiedades.
3. Si est seleccionada la opcin Maximizar el rendimiento para aplicaciones de red,
elija cualquier otra opcin, haga clic en Aceptar y, a continuacin, cierre el resto de
cuadros de dilogo.

Bloquear pginas en la memoria

Esta directiva de Windows determina qu cuentas pueden usar un proceso para mantener
los datos en la memoria fsica, impidiendo que el sistema realice la paginacin de los datos
en la memoria virtual del disco. El bloqueo de pginas en memoria puede mantener el
servidor activo cuando se produce la paginacin en la memoria del disco. La opcin
Bloquear pginas en la memoria de SQL Server est establecida en ON en las instancias de
32 y 64 bits de la edicin SQL Server 2014 Standard y posterior cuando a la cuenta con
privilegios para ejecutar sqlservr.exe se le ha concedido el derecho de usuario "Bloquear
pginas en la memoria (LPIM). En versiones anteriores de SQL Server, establecer la
opcin de bloqueo de pginas para una instancia de 32 bits de SQL Server requiere que la
cuenta con privilegios para ejecutar sqlservr.exe tenga el derecho del usuario LPIM y que la
opcin de configuracin awe_enabled est establecida en ON.
Para deshabilitar la opcin de Bloquear pginas en la memoria para SQL Server, quite el
derecho de usuario Bloquear pginas en la memoria para la cuenta de inicio de SQL
Server.

Para deshabilitar Bloquear pginas en la memoria


Para deshabilitar la opcin de bloqueo de pginas en memoria
1. En el men Inicio, haga clic en Ejecutar. En el cuadro Abrir, escriba gpedit.msc.
Se abrir el cuadro de dilogo Directiva de grupo.
2. En la consola Directiva de grupo, expanda Configuracin del equipo y, a
continuacin, expanda Configuracin de Windows.
3. Expanda Configuracin de seguridad y, a continuacin, expanda Directivas locales.
4. Seleccione la carpeta Asignacin de derechos de usuario.
Las directivas se mostrarn en el panel de detalles.
5. En el panel, haga doble clic en Bloquear pginas en la memoria.

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

6. En el cuadro de dilogo Configuracin de la directiva de seguridad local,


seleccione la cuenta con privilegios para ejecutar sqlservr.exe y haga clic en
Quitar.

Administrador de memoria virtual

Los sistemas operativos de 32 bits proporcionan acceso a un espacio de direcciones


virtuales de 4 GB. Los 2 GB de memoria virtual son privados para cada proceso y estn
disponibles para el uso de las aplicaciones. Esta cantidad de 2 GB est reservada para uso
del sistema operativo. Todas las ediciones de sistemas operativos incluyen un modificador
que puede proporcionar a las aplicaciones acceso a 3 GB de espacio de direcciones
virtuales, quedando limitado el sistema operativo a 1 GB. Para obtener ms informacin
acerca del uso de la configuracin de memoria del modificador, vea la documentacin de
Windows acerca de la optimizacin de 4 gigabytes (4 GB). Cuando SQL Server de 32 bits
se ejecuta en un sistema operativo de 64 bits, el espacio de direcciones virtuales disponible
para el usuario es el total de 4 GB.
El Administrador de memoria virtual (VMM) de Windows asigna las regiones confirmadas
de espacio de direcciones a la memoria fsica disponible.
Para obtener ms informacin sobre la cantidad de memoria fsica admitida por los
distintos sistemas operativos, vea la documentacin de Windows titulada "Lmites de
memoria para versiones de Windows".
Los sistemas de memoria virtual permiten una mayor asignacin de memoria fsica, de
forma que la proporcin de memoria virtual a memoria fsica puede ser superior a 1:1.
Como resultado, los programas ms grandes se pueden ejecutar en equipos con una
diversidad de configuraciones de memoria fsica. No obstante, el uso de una cantidad de
memoria virtual significativamente superior al promedio combinado de los espacios de
trabajo de todos los procesos puede provocar un rendimiento bajo.
Memoria de servidor mnima y Memoria de servidor mxima son opciones avanzadas.
Si utiliza el procedimiento almacenado del sistema sp_configure para cambiar estos
valores, podr cambiarlos solo si Mostrar opciones avanzadas tiene establecido el valor 1.
Estos valores surten efecto inmediatamente, sin necesidad de reiniciar el servidor.

Ejecutar varias instancias de SQL Server

Cuando est ejecutando varias instancias de Motor de base de datos, existen tres maneras
con las que puede administrar la memoria:

Utilizar max server memory para controlar el uso de memoria. Establezca los
valores mximos de cada instancia, teniendo cuidado de que la asignacin total no

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

sea mayor que la memoria fsica total de su equipo. Es buena idea proporcionar a
cada instancia memoria proporcional a la carga de trabajo o al tamao de la base de
datos esperados. Este mtodo tiene la ventaja de que cuando se inician nuevos
procesos o instancias, habr memoria libre para ellos de forma inmediata. El
inconveniente es que si no est ejecutando todas las instancias, ninguna de las
instancias que se estn ejecutando podr utilizar el resto de la memoria libre.
Utilizar min server memory para controlar el uso de memoria. Establezca la
configuracin mnima de cada instancia, de manera que la suma de estos mnimos
sea 1-2 GB menos que la memoria fsica total de su equipo. De nuevo, puede
establecer estos mnimos proporcionalmente a la carga de trabajo que se espera por
cada instancia. Este mtodo tiene la ventaja de que si no se ejecutan todas las
instancias a la vez, las que se estn ejecutando pueden utilizar el resto de la
memoria libre. Este mtodo tambin resulta til cuando en el equipo se est
ejecutando otro proceso que consuma mucha memoria, puesto que asegura que SQL
Server recibir, al menos, una cantidad de memoria razonable. El inconveniente es
que cuando se inicia una nueva instancia (o cualquier otro proceso), es posible que
pase algn tiempo hasta que las instancias que se estn ejecutando liberen memoria,
especialmente si para ello deben escribir pginas modificadas en sus bases de datos.
No hacer nada (no se recomienda). Las primeras instancias que se presenten con una
carga de trabajo intentarn asignar toda la memoria. Puede que las instancias
inactivas o las instancias que se inician ms tarde terminen ejecutndose con una
cantidad mnima de memoria disponible. SQL Server no intenta equilibrar el uso de
memoria en todas las instancias. Sin embargo, todas las instancias respondern a las
seales de notificacin de memoria de Windows para ajustar el tamao de su
superficie de memoria. Windows no equilibra la memoria entre las aplicaciones con
la API de notificacin de memoria. Simplemente proporciona informes globales
acerca de la disponibilidad de memoria del sistema.

Esta configuracin se puede cambiar sin tener que reiniciar las instancias; por tanto, se
puede experimentar fcilmente para encontrar la mejor configuracin para el patrn de uso.

Proporcionar la cantidad mxima de memoria a SQL Server


32 bits

Memoria
convencional

64 bits

Hasta el lmite de espacio de


direcciones virtuales del proceso en
Hasta el lmite de espacio de
todas las ediciones de SQL Server:
direcciones virtuales del proceso en
todas las ediciones de SQL Server:
2 GB
3 GB con el parmetro de
8 TB en la arquitectura x64
arranque /3gb1
4 GB en WOW642

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

1 /3gb es un parmetro de arranque del sistema operativo. Para obtener ms informacin,


visite MSDN Library.
2 WOW64 (Windows on Windows 64) es un modo en el que SQL Server de 32 bits se
ejecuta en un sistema operativo de 64 bits. Para obtener ms informacin, visite MSDN
Library.

Ejemplos

Ejemplo A
En el ejemplo siguiente se establece la opcin max server memory en 4 GB:
Copiar
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO

Ejemplo B.Determinar la asignacin de memoria actual


La consulta siguiente devuelve informacin acerca de la memoria asignada actual.
Copiar
SELECT
(physical_memory_in_use_kb/1024) AS Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_Sqlserver_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_process_memory

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Conclusin
Luego de haber concluido este trabajo de investigacin sobre bases de datos fueron muchos los
esfuerzos y conocimientos adquiridos durante dicha elaboracin.
Algunos de los aspectos aprendidos y que de gran peso es la base de datos su definicin,
requerimiento, ventajas y caractersticas donde podemos decir que la base de datos: Es una
coleccin de datos o informacin usados para dar servicios a muchas aplicaciones al mismo
tiempo.

ADMINISTRACION DE BASE DE DATOS

L.I. NICOLAS CABRERA HIDALGO

Bibliografa
http://www.monografias.com/trabajos94/motores-almacenamiento-e-indices-mysql/motoresalmacenamiento-e-indices-mysql.shtml
http://es.wikipedia.org/wiki/Mecanismos_de_almacenamiento_(MySQL)
http://www.webtutoriales.com/articulos/ver-lista-de-procesos-en-mysql
http://infodocs.net/articulo/mysql/administracin-de-procesos-en-mysql
http://tallerbd.wikispaces.com/-+Estructura+de+MySQL
http://www.ptolomeo.unam.mx:8080/xmlui/bitstream/handle/132.248.52.100/199/A4.pdf?sequ
ence=4
http://www.postgresql.org.es/node/247
http://www.postgresql.org.es/node/582
http://ocw.uoc.edu/computer-science-technology-and-multimedia/bases-de-datos/bases-dedatos/P06_M2109_02152.pdf

http://manuales.guebs.com/php/function.mysql-listprocesses.html
https://msdn.microsoft.com/es-es/library/ms178067.aspx
http://www.postgresql.org.es/node/582
http://help.arcgis.com/es/arcgisdesktop/10.0/help/index.html#
//002p0000002n000000
http://www.helpdna.net/sqlserver_arquitectura.htm
https://msdn.microsoft.com/es-es/library/ms175518.aspx7
http://www.guillesql.es/Articulos/Como_comprobar_utilizacion_
CPU_SQLServer.aspx
http://es.slideshare.net/CrypticHernndezOrtega/caracteristica
s-microsoft-sql-server

You might also like