estructura interna de las manejadores de base de datos

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

Upload: mauricio-morales

Post on 04-Oct-2015

65 views

Category:

Documents


0 download

DESCRIPTION

Base de datos

TRANSCRIPT

  • 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 ellos-

    aunque 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 geo-

    espaciales 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 L.I. NICOLAS CABRERA HIDALGO

    client_port | 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

    tellers | 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

    tellers | 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

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

    tellers | 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 [email protected]

    [[email protected] ~]$ netstat -pn |grep 129.240.10.210 |grep 49417

  • ADMINISTRACION DE BASE DE DATOS L.I. NICOLAS CABRERA HIDALGO

    tcp 0 0 129.240.10.210:49417 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)

    [[email protected] ~]$ 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. [[email protected] ~]$ 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 indica que el proceso se encuentra en espera de ejecutarse. 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.

    Tipo de SO Cantidades mnimas de memoria disponibles para Memoria de servidor

    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 64 bits

    Memoria

    convencional

    Hasta el lmite de espacio de

    direcciones virtuales del proceso en

    todas las ediciones de SQL Server:

    2 GB

    3 GB con el parmetro de

    arranque /3gb1

    4 GB en WOW642

    Hasta el lmite de espacio de

    direcciones virtuales del proceso en

    todas las ediciones de SQL Server:

    8 TB en la arquitectura x64

  • 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/motores-

    almacenamiento-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-de-

    datos/P06_M2109_02152.pdf

    http://manuales.guebs.com/php/function.mysql-list-

    processes.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