You are on page 1of 30

UNIDAD ACADMICA N 03:

ADMINISTRACION DE ARCHIVOS DE BASES DE DATOS

Alcrearunabasededatos,seconfiguralaestructuradealmacenamientodelosdatos. Estaestructuraincluyealmenosunarchivodedatos,quecontieneobjetosdelabasededatos como tablas e ndices y un archivo de registro de transacciones que contiene el diario de transaccionesdelabasede.Antesdecrearunabasededatos,esimportantequecomprenda cmoSQLServeralmacenalosdatos,ascomolafuncindelregistrodetransacciones. Estaunidad proporcionaalosalumnoslosconocimientosylacapacidadnecesariospara crearunabasededatos.EnlsedescribecmoMicrosoftSQLServer2005almacenalos datosyprocesalastransacciones.Ademsveremoscmocrear,administrarycolocararchivos yregistrosdetransaccionesdebasesdedatos,ascomolamaneradeoptimizarbasesdedatos mediante RAID basado en hardware, grupos de archivos definidos por el usuario y una combinacin de ambos. Concluye con informacin acerca de cmo asignar, administrar y supervisarlosrequisitosdeespacioyalmacenamientodeunabasededatos,ascomoalgunas consideracionesacercadelrendimiento.

Alfinalizarelestudiodelapresenteunidadtemticaelestudiante: 1. Describe el modo en que SQL Server almacena los datos y trata las transacciones. 2. Ampliaoreduceeltamaodeunabasededatos. 3. Determina la ubicacin de archivos y registros de transacciones de basesdedatosparamejorarelrendimientoylatoleranciaaerrores. 4. OptimizaunabasededatosmedianteRAIDbasadoenhardware. 5. Determina cundo y cmo usar grupos de archivos para optimizar una basededatos. 6. Optimiza una base de datos mediante grupos de archivos con RAID basadoenhardware. 7. Estimalacantidaddeespacioquerequiereunabasededatos.

Ing. Metssy A.Ygnacio Garca

70

1. INTRODUCCIONALASESTRUCTURASDEDATOS

a) Cmo se almacenan los datos?


Al crear una base de datos, es importante comprender cmo SQL Server almacena los datos para poder calcular y especificar la cantidaddeespacioendiscoquehayqueasignaralosarchivosde datos y registros de transacciones. Tenga en cuenta los siguientes hechosydirectricesacercadelalmacenamientodelosdatos: Todaslasbasesdedatostienenunarchivodedatosprincipal (.mdf), y uno o varios archivos de registro de transacciones (.ldf). Una base de datos tambin puede tener archivos de datos secundarios (.ndf). Estos archivos fsicos tienen nombres del sistema operativo y nombres de archivo lgicos que se pueden utilizar en instrucciones TransactSQL. La ubicacin predeterminada para todos los archivos de datos y registros de transacciones es C:\Archivos de programa\MicrosoftSQLServer\MSSQL\Data. Cuando se crea una base de datos, se hace una copia dela basededatosmodel,queincluyelastablasdelsistema. Los datos se almacenan en bloques de 8 kilobytes (KB) de espacio contiguo en disco, llamados pginas. Esto significa que una base de datos puede almacenar 128 pginas por megabyte(MB). Lasfilasnopuedenabarcarmsdeunapgina.Portanto,la mxima cantidad de datos de una fila, quitando el espacio necesarioparalacabeceradelafila,es8060bytes. Las tablas y los ndices se almacenan en extensiones. Una extensinsonochopginascontiguas,o64KB.Portanto,una basededatostiene16extensionespormegabyte.Lastablas pequeaspuedencompartirextensionesconotrosobjetosde labasededatos. Los archivos del registro de transacciones contienen toda la informacin necesaria para recuperar la base de datos en casodeunerrordelsistema

Ing. Metssy A.Ygnacio Garca

71

Figura3.1:Labasededatosysusarchivos

b) Las Transacciones:
Una transaccin es un conjunto de una o varias instrucciones TransactSQL que se tratan como una sola unidad de trabajo y recuperacin. La unidad se debe ejecutar completamente, o no ejecutarse. Las aplicaciones controlan las transacciones cuando se especifica el principio y el final de stas ltimas. Para especificar el principio y el final de las transacciones puede usar tanto las instrucciones TransactSQL como las funciones de la interfaz de programacin deaplicaciones (API) de bases de datos. SQL Server realizatransaccionesimplcitasyexplcitas. Transaccinimplcita: SQLServerrealizaunatransaccinimplcitacuandoseejecutacomo una transaccin cualquiera de las instrucciones TransactSQL siguientes: Altertable Insert Create Open Delete Revoke Drop Select
72

Ing. Metssy A.Ygnacio Garca

Fetch Truncatetable

Grant Update

De manera predeterminada, SQL Server funciona en modo de consignacinautomtica.Estosignificaqueunatransaccinimplcita se consigna tras su ejecucin sin necesidad de finalizar la transaccinconunainstruccinCOMMITTRANSACTION. SQL Server puede funcionar tambin en modo de transaccin implcita. Esto significa que cuando cualquiera de las instrucciones TransactSQL citadas anteriormente comienza una transaccin, dicha transaccin debe tener una instruccin COMMIT TRANSACTIONparafinalizarlamisma. Transaccinexplcita: SQLServerrealizaunatransaccinexplcitacuandoelprincipioyel final de una transaccin se definen explcitamente. Puede definir el principio y el final de la transaccin en TransactSQL mediante las instruccionesBEGINTRANSACTIONyCOMMITTRANSACTION. Queselregistrodetransacciones? SQL Server graba todas las transacciones en un registro de transacciones para mantener la coherencia de la base de datos y facilitar la recuperacin. El registro es un rea de almacenamiento que efecta automticamente el seguimiento de todos los cambios en la base de datos. SQL Server graba las modificaciones en el registroendiscocuandoseejecutan,antesdeescribirseenlabase dedatos Elregistrodetransaccionesgrabalasmodificacionesdelosdatosa medidaqueseproducen.Elprocesoderegistroeselsiguiente: Laaplicacinenvaunamodificacindedatos. Cuando la modificacin se ejecuta, las pginas de datos afectadas se cargan en memoria (llamada cach del bfer) desde el disco si las pginas no estn ya cargadas en la cachdelbferporunaconsultaanterior. Cada instruccin de modificacin de datos se graba en el registromientrasseejecuta.Elcambiosiempresegrabaenel registro y se escribe en disco antes de hacer la modificacin enlabasededatos.Estetipoderegistrosedenominaregistro deprescritura.

Ing. Metssy A.Ygnacio Garca

73

De forma repetitiva, el proceso de punto de comprobacin escribe en disco todas las transacciones completadas en la basededatos.

Si se produce un error del sistema, el proceso automtico de recuperacinutilizaelregistrodetransaccionesparaaplicartodaslas transacciones confirmadas y deshacer las transacciones incompletas. Los marcadores de transaccin del registro se utilizan durante la recuperacinautomticaparadeterminarlospuntosdeinicioyfinde cadatransaccin.Unatransaccinseconsideracompletacuandoel marcador BEGIN TRANSACTION tiene un marcador COMMIT TRANSACTIONasociado.Laspginasdedatosseescribenendisco cuandotieneexisteunpuntodecomprobacin

Figura3.2:Funcionamientodelregistrodetransacciones

Ing. Metssy A.Ygnacio Garca

74

2. CREACIONDELASBASESDEDATOS

a) Que ocurre durante la creacin de una base de datos?


Puede crear una base de datos desde el Administrador corporativo de SQL Server o mediante la instruccin TransactSQL CREATE DATABASEenelAnalizadordeconsultasdeSQLServer. Cuandosecreaunabasededatos,SQLServer: Creaunarchivodedatosyunregistrodetransaccionespara esabasededatos. Requiere que el propietario y creador de la nueva base de datos tenga permiso para usar la base de datos master, ya questacontienelastablassysdatabasesysysaltfilesenlas quesegrabalainformacinacercadecadabasededatosde SQLServer. Permitedefinir: Elnombredelabasededatos. Laspropiedadesdelabasededatos. Laubicacindelosarchivosdelabasededatos. SQL Server usa una copia de la base de datos model para inicializar la base de datos y sus metadatos. Las opciones o configuraciones de la base de datos model se copian en la nuevabasededatos. Acontinuacin,SQLServerllenaelrestodelabasededatos con pginas vacas, excepto aquellas pginas que contienen datosinternosquegrabancmoseusaelespacioenlabase dedatos

b) Especificacin de opciones durante la creacin de la base de datos


Al crear una base de datos se pueden especificar las opciones siguientes: Archivoprincipal: El archivo principal consta del archivo de datos inicial del grupo de archivos principal. Un grupo de archivos es una coleccin de archivos de datos con nombre. El grupo de archivos principal contiene todas las tablas del sistema de la basededatos.Tambincontienetodoslosobjetosydatosno Ing. Metssy A.Ygnacio Garca
75

asignados a grupos de archivos definidos por el usuario. El archivo dedatos principal esel punto deinicio dela base de datosysealalosdemsarchivosdelabasededatos.Todas las bases de datos tienen un archivo de datos principal y un grupo de archivos principal. La extensin de nombre de archivo recomendada para los archivos principales de datos es.mdf. Archivossecundarios: Las bases de datos pueden tener archivos secundarios de datos.Algunasbasesdedatospuedenserlosuficientemente grandes como para necesitar varios archivos secundarios de datos, o pueden usar archivos secundarios en unidades de discoindependientespararepartirlosdatosporvariosdiscos. Los archivos secundarios pueden estar en el grupo de archivos principal o agrupados en grupos de archivos definidos por el usuario. La extensin de nombre de archivo recomendadaparalosarchivossecundariosdedatoses.ndf. Registrodetransacciones Cada base de datosdebe tenerunregistrode transacciones. Amenosqueseindiquelocontrario,secreaautomticamente un archivo de registro de transacciones con un nombre generado por el sistema. La extensin de nombre de archivo recomendada para los archivos de registro de transacciones es.ldf.Porlogeneral,elarchivoderegistrodetransacciones supone aproximadamente el 10 o el 15 por ciento de los archivosdelabasededatos Nombreyubicacindearchivo Cadaarchivodebasededatostieneunnombrelgicoyuna ubicacin fsica para el archivo. Por lo general, los archivos deben repartirse entre varios discos para mejorar el rendimientoylaredundancia. Tamao Puede especificar el tamao de cada archivo de datos y de registro. El tamao mnimo es de 512 KB, tanto para los archivos de datos como para los archivos de registro. El tamao especificado para el archivo de datos principal tiene queser,almenos,comoeltamaodelarchivoprincipaldela basededatosmodel.

Ing. Metssy A.Ygnacio Garca

76

Crecimientodearchivo Puedeespecificarsiunarchivoaumentaronosutamaosi es necesario. Para referirse a esta opcin se habla de crecimiento automtico. De forma predeterminada, est habilitadoelcrecimientodearchivo. Puede especificar el crecimiento de archivo en megabytes o mediante porcentaje. El porcentaje slo se aplica al crecimientodearchivo,noaltamaomximo.

Tamaomximo Puede especificar el tamao mximo de crecimiento de archivo en megabytes o mediante porcentaje. El valor predeterminado de crecimiento es del 10 por ciento. Se recomienda especificar un tamao mximo de crecimiento paraelarchivo.Sinoespecificauntamaoyesthabilitadala opcin de crecimiento de archivo, el archivo crecer de manerapredeterminadahastaqueeldiscosellene. Mencionequelarutadeaccesodelarchivovariarsiseutiliza una instancia con nombre de SQL Server en lugar de una instanciapredeterminada.

Intercalacin Este parmetro especifica la intercalacin predeterminada parala basede datos. De manera predeterminada, una base dedatosheredalaintercalacindelainstanciadeSQLServer enlaquesecrealabasededatos

c) Cambio de opciones de la base de datos despus de creada


Despusdecrearunabasededatos,puedecambiarlasopcionesde base de datos. Para establecer opciones de base de datos puede utilizar el Administrador corporativo de SQL Server, la instruccin TransactSQL ALTER DATABASE o el procedimiento almacenado sp_dboption. Puede configurar un nmero de opciones de base de datos para cadabasededatos.Paraquelasopcionesafectenatodaslasbases dedatosnuevas,cambielabasededatosmodel. Haycincocategorasdeopcionesdebasededatos:

Ing. Metssy A.Ygnacio Garca

77

Las opciones automticas comportamientosautomticos.

controlan

determinados

Las opciones de cursor controlan el comportamiento y el alcancedelcursor. Las opciones de recuperacin controlan el modelo de recuperacindelabasededatos. Las opciones de SQL controlan las opciones que cumplen el estndarANSI. Lasopcionesdeestadocontrolan: Silabasededatosestenlneaono. Quinpuedeconectarsealabasededatos. Silabasededatosestonoenmododeslolectura

d) Presentacin de las propiedades de bases de datos


Paraobtenerpropiedadeseinformacindelabasededatos,puede usar el Administrador corporativo de SQL Server, o bien las funcionesdelsistema,losprocedimientosalmacenadosdelsistemao lasinstruccionesdeComprobadordecoherenciadelabasededatos (DBCC)delAnalizadordeconsultasdeSQL. La tabla siguiente enumera los procedimientos e instrucciones utilizadoshabitualmente. Procedimientoalmacenadodel sistema/instruccinDBCC sp_helpdb Descripcin Informaacercadetodaslas basesdedatosdeun servidor.Proporcionael nombre,eltamao,el propietario,elId.,lafechade creacinylasopcionesdela basededatos. Informasloacercadela basededatosespecificada. Proporcionaelnombre,el tamao,elpropietario,elId., lafechadecreacinylas opcionesdelabasede datos.Tambinenumeralos
78

sp_helpdb baseDeDatos

Ing. Metssy A.Ygnacio Garca

archivosdedatosyde registro. sp_spaceused[nombreObjeto] Resumeelespaciode almacenamientoqueutiliza unabasededatosoun objetodebasededatos. Proporcionaestadsticas acercadelusodelespacio delregistrodetransacciones entodaslasbasesdedatos

DBCCSQLPERF(LOGSPACE)

3. ADMINISTRACIONDELOSARCHIVOSDEBASEDEDATOS A medida que la base de datos crece o cambia, puede expandir o reducir manualmente el tamao de los archivos de datos y de registro o bien configurarlos para que lo hagan automticamente. Cuando ya no necesite una base de datos, puede eliminarla, junto con todos sus archivos asociados

a) Administracin del crecimiento de los archivos de datos y de registro de transacciones


Cuandolosarchivosdedatoscrecenocuandoaumentalaactividad de modificacin de datos, puede que necesite ampliar el tamao de losarchivosdedatosoderegistro.Puedeadministrarelcrecimiento de la base de datos mediante el Administrador corporativo de SQL Server o con la instruccin ALTER DATABASE. Para utilizar la instruccin ALTER DATABASE, debe encontrarse en la base de datosmaster. Puede controlar el tamao de la base de datos si configura los archivos de base de datos y de registro para que crezcan automticamente,siaumenta manualmentelosarchivosdebasede datosyderegistroexistentesosicreaarchivossecundariosdebase dedatosyderegistro. Usodelcrecimientoautomticodelosarchivos Siemprequeseanecesario,puedeestablecerlapropiedadde crecimiento automtico de archivos de cualquier archivo de basededatosparaqueespecifiquequeelarchivoseexpanda automticamente mediante una cantidad o porcentaje determinado. El uso del crecimiento automtico de los archivosreducelastareasadministrativasrelacionadasconla ampliacinmanualdeltamaodelabasededatos.

Ing. Metssy A.Ygnacio Garca

79

Puedeespecificarelespacioasignado,eltamaomximoyel incremento de crecimiento de cada archivo. Si no especifica un tamao mximo, un archivo puede seguir creciendo hasta ocupartodoelespaciodisponibleendisco. Paraunrendimientoptimo,debe: Asignar espacio suficiente a la base de datos y al registro para evitar que se active con frecuencia la caractersticadecrecimientoautomtico. Establecer un tamao mximo para los archivos de datos. Establecer los incrementos de crecimiento del archivo de datos y de registro con unos tamaos suficientes como para evitar que se active con frecuencia la caractersticadecrecimientoautomtico.

Expansin manual de archivos de datos y de registro de transacciones Tambin puede aumentar manualmente el tamao de cualquier archivo de datos o de registro de transacciones mediante el Administrador corporativo de SQL Server o la instruccin ALTER DATABASE en TransactSQL. Quiz prefieraexpandirmanualmentelosarchivosdebasededatos para controlar cundo se produce la expansin. Expandir archivos enincrementos pequeosaumenta la fragmentacin y puede afectar al rendimiento si los archivos se expanden mientraslabasededatosestocupada.

Determinacin de la expansin automtica o manual de archivos Dadoquepuedeestablecerquelosarchivosdebasededatos crezcandeformaautomticaomanual,debetenerencuenta losiguiente: En entornos de produccin grandes, debe asignar espacio suficiente para los archivos de datos para los que crela base de datos yexpandirlos manualmente, si es necesario. Esto permite controlar cundo se expandenlosarchivos. En un entorno de produccin pequeo o de escritorio, como un agente de ventas de viaje, al establecer que
80

Ing. Metssy A.Ygnacio Garca

losarchivosdebasededatoscrezcanautomticamente sereducelacargaadministrativa.

Creacin de archivos secundarios de datos y de registro detransacciones Puede crear tambin archivos secundarios de datos y de registro de transacciones para ampliar el tamao de la base dedatos.Usearchivossecundariosdedatosyderegistrode transacciones para colocar archivos en discos fsicos independientes. Tambin puede usar RAID para repartir los datosenvariosdiscos.

b) Reduccin automtica de una base de datos o de un archivo de base de datos


Cuandohaydemasiadoespacioasignadoocuandolosrequisitosde espacio disminuyen, puede reducir la base de datos completa o archivosdedatosoderegistrodetransaccionesespecficos. Habilitacindelareduccinautomtica: Para configurar una base de datos o archivos de base de datosparaquesereduzcanautomticamente,puede: Especificar la opcin autoshrink en el SQL Server ManagementStudio Ejecutar la instruccin AUTO_SHRINK. ALTER DATABASE

Ejecutar el procedimiento almacenado del sistema sp_dboption. Actividades de SQL Server durante la reduccin automtica Demanerapredeterminada,laopcinparareducirarchivosde manera automtica est deshabilitada en todas las ediciones de SQL Server, excepto en la edicin Desktop. Cuando se habilita SQL Server para que reduzca archivos automticamente,SQLServer: Reduce los archivos de datos y de registro de transacciones cuando ms del 25 por ciento de los archivoscontienenespacioquenoseutiliza.

Ing. Metssy A.Ygnacio Garca

81

No se puede configurar el porcentaje de espacio libre que hay que quitar. SQL Server quita todo el espacio libre que resulta posible. El registro de transacciones slo se reduce si no contiene porciones activas del registrolgicoqueserequieranparalarestauracinde labasededatos. Realiza esta actividad en segundo plano y no se ve afectada la actividad de ningn usuario de la base de datos.

c) Reduccin manual de una base de datos o de un archivo de base de datos


La reduccin manual de toda una base de datos o de archivos de basededatosporseparadoresultatilenunentornodeproduccin, yaquepermitecontrolarcundoserealizaestaactividad. Mtodosdereduccin Parareducirmanualmentebasesdedatosyarchivosdebase dedatosauntamaoespecfico,puedeusarelAdministrador corporativo de SQL Server o ejecutar la instruccin DBCC SHRINKDATABASEoDBCCSHRINKFILE.Puede: Reducir los archivos de datos y de transacciones en grupooindividualmente. Reducirlosarchivosindividualesdedatosyderegistro de transacciones menores que su tamao inicial de creacinmediantelainstruccinDBCCSHRINKFILE. Reduccindeunabasededatosydearchivosdedatos SQL Server reduce al instante una base de datos y los archivosindividuales de datos. No se puede reducir toda una base de datos a un tamao menor que el tamao inicial de creacinoqueeldelabasededatosmodel. Reduccindearchivosderegistrodetransacciones Alreducirmanualmentearchivosderegistrodetransacciones, SQLServerintentareducirinmediatamenteelregistrode transacciones.SQLServer: Reduce las partes inactivas del registro transaccionesmayoresqueeltamaodeseado. de

Ing. Metssy A.Ygnacio Garca

82

Si esto no es suficiente para reducir el registro de transaccionesaltamaodeseado,SQLServer: a.Devuelveunmensajedondeseinformaqueparte delregistroactivosuperaeltamaodeseado. b.Notificaquhacerparamoverelregistroactivodel final del archivo de registro de transacciones, comoporejemplorealizarunacopiadeseguridad delabasededatosparatruncarelregistro.Mover el archivo de registro del final permite a SQL Server reducir el archivo de registro de transacciones. Cuando recibe mensajes de SQL Server, puede realizar la actividad sugerida y, a continuacin, volver a ejecutar la instruccin DBCCSHRINKDATABASE o DBCCSHRINKFILE parafinalizarelprocesodereduccin. Configuracindelasopcionesdereduccindelabasede datos Puede usar las opciones de base de datos siguientes al reducir archivos de base de datos mediante el Administrador corporativodeSQLServer.

Opcin Espaciolibremximodelos archivostraslareduccin

Descripcin Elporcentajedeespaciolibre deseadoenelarchivodelabase dedatosunavezqueSQLServer hareducidolabasededatos. Muevepginasalprincipiodel archivoantesdereducirlabasede datos.Laseleccindeestaopcin puedeafectaralrendimiento,pero puedesernecesariaparalograrlos objetivosdereduccindeseados. Reducelabasededatossegnuna programacinseleccionada.

Moverpginasalprincipio delarchivoantesdela reduccin

Reducirlabasededatosen funcindeesta programacin Archivos

Especificalosarchivosdebasede datosindividualesquesevana reducir.Estoproporcionauncontrol


83

Ing. Metssy A.Ygnacio Garca

msprecisoalahoradereducirla basededatos

d) Eliminacin de una base de datos


Puede eliminar una base de datos cuando ya no la necesite. La eliminacin de una base de datos quita la base de datos y los archivosdediscoqueutilizalabasededatos. Mtodosdeeliminacindeunabasededatos Para eliminar bases de datos, puede utilizar el Administrador corporativo de SQL Server o ejecutar la instruccin DROP DATABASE. Despus de eliminar una base de datos, todos los Id. de inicio de sesin que utilizaban esa base de datos como base de datos predeterminada ya no tendrn una base dedatospredeterminada. Restriccionesdelaeliminacindebasesdedatos Las siguientes restricciones se aplican a la eliminacin de basesdedatos.Nosepuedeeliminar: Unabasededatosqueestenprocesoderestauracin. Una base de datos que un usuario haya abierto para leeroescribirenella. Una base de datos que est publicando alguna de sus tablascomopartedeladuplicacindeSQLServer. Unabasededatosdesistema.

4. UBICACINDEARCHIVOSYREGISTROSDEBASESDEDATOS Puede mejorar el rendimiento e implementar la tolerancia a errores si administrala colocacin dearchivos dedatos y registros de transacciones endiscos. SQLServerusallamadasdeentradaysalida(E/S)deMicrosoftWindows para leer y escribir en el disco. SQL Server administra cundo y cmo se realiza la E/S en el disco pero delega en Windows la realizacin de las operaciones de E/S subyacentes. El subsistema de E/S incluye el bus del sistema, tarjetas controladoras de disco, discos, unidades de cinta, unidades de CDROM y muchos otros dispositivos de E/S. Los discos representanhabitualmenteelcuellodebotellamsgrandedeunsistema.
84

Ing. Metssy A.Ygnacio Garca

a) Administracin del almacenamiento en disco


Enelcontextodelaadministracindealmacenamientoendiscopara SQLServer, Rendimientoserefiereenpartealavelocidaddelasoperacionesde lecturayescritura. Tolerancia a errores se refiere a la capacidad del sistema para continuar funcionando sin prdida de datos cuando se produce un errorenunapartedelsistema. Engeneral,usediscosformateadosconNTFSqueuse64KBcomo unidaddeasignacin.Nousevolmenescomprimidos

b) Distribucin de archivos de datos


Debe distribuir la mayor cantidad de datos entre tantas unidades fsicas como sea posible. De esta forma se mejora el rendimiento a travsdeaccesoparaleloadatosalusarvariosarchivos.Engeneral, creeunarchivoparacadadiscofsicoyagrupelosarchivosenunoo msgruposdearchivos.SQLServerpuederealizar: Exploraciones paralelas de los datos si el equipo tiene varios procesadoresyvariosdiscos. Variasexploracionesparalelasparaunasolatablasielgrupo dearchivosdestacontienevariosarchivos. Para distribuir con uniformidadlos datosentre todoslos discos,use RAID y, a continuacin, grupos de archivos definidos por el usuario para distribuir los datos entre varios conjuntos de bandas de hardware,siesnecesario. Una tcnica avanzada es separar las tablas a partir de ndices no agrupados en clsteres. Un ndice no agrupado en clsteres es un ndice que tiene un ordenlgico distinto del orden fsico delas filas almacenadoeneldisco.

c) Creacin de registros independientes

de

transacciones

en

discos

Debecrearelregistrodetransaccionesenundiscoindependienteo usar RAID. Dado que el archivo de registro de transacciones se escribe en serie, al usar un disco independiente dedicado, los cabezalesdeldiscopuedenpermanecerenellugaradecuadoparala siguiente operacin de escritura. El uso de RAID proporciona toleranciaaerrores. Porejemplo,sisuentornodeproduccintienevariasbasesdedatos en un servidor, quiz desee usar discos independientes para cada Ing. Metssy A.Ygnacio Garca
85

registro de transacciones. Esta estrategia permite obtener un rendimientoptimo.

d) Ubicacin de la base de datos tempdb


Paraasegurarunrendimientoptimodebecolocarlabasededatos tempdb en un subsistema rpido de E/S que sea independiente de lasbasesdedatosdeusuario.PuedeusarRAIDparacrearbandas de la base de datos tempdb entre varios discos para mejorar el rendimiento.

5. OPTIMIZACIN DE UNA BASE DE DATOS MEDIANTE RAID BASADO ENHARDWARE ElusodeRAIDbasadoenhardwarepermiteadministrarvariosdiscosal tratarunamatrizdediscoscomounsolodisco.

a) Uso de RAID basado en hardware


Para obtener un mejor rendimiento conviene usar RAID basado en hardwareenlugardeRAIDbasadoensistemasoperativos.Elusode RAID basado en sistemas operativos quita ciclos de CPU a otros procesos del sistema. El uso de RAID basado en hardware permite ademsreemplazarunaunidadconerroressinnecesidaddeapagar elsistema.Sinembargo,estaventajadependedelaimplementacin concretadelRAIDdehardwarequeadquiera.

b) Aplicacin de los tipos de RAID


Cuando use RAID basado en hardware para optimizar la base de datos,considerelaposibilidaddeusarlostiposdeRAIDsiguientes: Reflejosendiscooduplicacindedisco(RAID1)paramejorar laredundanciadelregistrodetransacciones. Creacin de bandas de disco con paridad (RAID 5) para mejorar el rendimiento y la redundancia de los archivos de datosyregistrosdetransacciones. Reflejosendiscoconcreacindebandas(RAID10oRAID1 +RAID0)paraobtenerelmximorendimientodelosarchivos dedatos.

El uso de RAID para tolerancia a errores no sustituye a lasestrategias de copia de seguridad adecuadas. Debe realizar copias de seguridad peridicasparaprotegerlasbasesdedatosylosdatosdecualquierprdida irreparable.

Ing. Metssy A.Ygnacio Garca

86

6. OPTIMIZACIN DE UNA BASE DE DATOS MEDIANTE GRUPOS DE ARCHIVOS Los gruposde archivos mejoran el rendimiento gracias ala distribucin de los datos entre varios discos y mediante subprocesos paralelos para procesar consultas. Los grupos de archivos tambin pueden facilitar el mantenimientodelasbasesdedatos. a) Introduccin a Grupos de archivos definidos por el

usuario

Figura3.3:Grupodearchivosdefinidosporelusuario

Si la configuracin de hardware incluye varias unidades de disco, puedecolocarobjetosyarchivosespecficosendiscosindividualesy agrupar los archivos de base de datos en uno o ms grupos de archivos. Tiposdegruposdearchivos SQLServertieneungrupodearchivosprincipalypuedetener tambingruposdearchivosdefinidosporelusuario. El grupo de archivos principal contiene el archivo de datosprincipalconlastablasdelsistema. Un grupo de archivos definido por el usuario consta de archivosdedatosagrupadosconfinesadministrativosy deasignacin. Ing. Metssy A.Ygnacio Garca
87

Sugerencia:SiOrdhist1.ndfyOrdhst2.ndfsevanaconsultar amenudo,debencolocarseendiscosindependientes. Colocacindearchivosendiscosindependientes La ilustracin (Figura 3.3) es un ejemplo de cmo se pueden colocararchivosdebasededatosendiscosindependientes. Puedecreargruposdearchivosdefinidosporelusuario para separar los archivos que se consultan con frecuencia de los que se modifican a menudo. En la ilustracin, los archivos OrdHist1.ndf y OrdHist2.ndf se colocan en un disco independiente de las tablas Products, Customers y Orders porque stas se consultan como ayuda para la toma de decisiones ms que actualizarse con informacin actualizada de pedidos. Tambin puede colocar los archivos Ordhist1.ndf y Ordhst2.ndf en discos independientes si ambos se consultanconfrecuencia. Los archivos de registro de transacciones no forman parte de los grupos de archivos. El espacio de registro de transacciones se administra de forma separada del espaciodedatos

b) Creacin de grupos de archivos definidos por el usuario


Puedecrearvariosarchivosdedatosendiscosindependientesyun grupo de archivos definido por el usuario que contenga dichos archivos. Si usa grupos dearchivos definidos por el usuario,intente tenerunarchivopordiscofsico. Mtodosdecreacindegruposdearchivosdefinidospor elusuario Puedecrearungrupodearchivosdefinidoporelusuarioala vez que crea una base de datos o posteriormente. Puede utilizar el Administrador corporativo de SQL Server o la instruccinCREATEDATABASEoALTERDATABASE. Eleccindeungrupodearchivospredeterminado SQL Server designa un grupo de archivos como el predeterminado. El grupo de archivos predeterminado se establececomoelprincipalalcrearlabasededatos,amenos que se indique lo contrario. El grupo de archivos predeterminado contiene las pginas de todas las tablas e Ing. Metssy A.Ygnacio Garca
88

ndicesquenoespecificaronungrupodearchivosdurantesu creacin. Definicin del tamao del grupo de archivos principal predeterminado Sielgrupodearchivospredeterminadosedejacomogrupode archivos principal, deber establecer adecuadamente el tamao del grupo de archivos principal o definirlo automticamente para no quedarse sin espacio. El grupo de archivos principal debe ser lo bastante grande como para almacenar todas las tablas del sistema y las tablas e ndices quenoestnasignadasaungrupodearchivosdefinidoporel usuario. Si el grupo de archivos principal se queda sin espacio, no podr agregar informacin a las tablas del sistema. Sin embargo, si un grupo de archivos definido por el usuario se queda sin espacio, slo se vern afectados los archivos de usuarioqueestnasignados especficamente a ese grupode archivos. Presentacindelainformacindelosgruposdearchivos Puede ver informacin acerca de los grupos de archivos mediante el Administrador corporativo de SQL Server o los procedimientosalmacenadosdelsistemaenTransactSQL. Procedimiento almacenadode sistema sp_helpfile [[@filename=] ' nombre'] Descripcin

sp_helpfilegroup [grupoDeArchivos]

Devuelve los nombres fsicosylosatributosdelos archivos asociados con la base de datos actual. Utilice este procedimiento almacenado de sistema para determinar los nombres de los archivos quevayaaagregaroquitar delservidor. Devuelvelosnombresylos atributos de los grupos de archivos asociados con la basededatosactual.

Ing. Metssy A.Ygnacio Garca

89

c) Uso de grupos de archivos para mejorar el rendimiento

Figura3.4:UsodeGrupodearchivosparamejorarelrendimiento

Elusodegruposdearchivosdefinidosporelusuariopuedemejorar el rendimiento al equilibrar la carga de datos entre varios discos y utilizarsubprocesosparalelosparamejorarelaccesoalosdatos. Equilibriodelacargadedatosentrevariosdiscos Al crear una tabla, puede asignrsela a un grupo de archivos definido por el usuario. Los grupos de archivos usan una estrategiadellenadoproporcionalentretodoslosarchivosdel grupo. A medida que los datos se escriben en el grupo de archivos,cadaarchivosellenaenparalelo. Cada archivo se coloca fsicamente en un disco o en un conjunto de discos. SQL Server mantiene una asignacin de archivos que asocia cada objeto de base de datos con su ubicacineneldisco.Lailustracinmuestraque: Si se crea un archivo en un grupo de archivos que comprende cuatro discos, una asignacin de archivos seala la ubicacin de los datos de los cuatro discos fsicos. Si se crean dos archivos en un grupo de archivos que abarca cuatro discos, dos asignaciones de archivos (unaasignacinparacadaarchivo)sealanlaubicacin delosdatosenloscuatrodiscosfsicos. Ing. Metssy A.Ygnacio Garca
90

Uso de subprocesos paralelos para mejorar el acceso a losdatos Siempre que se tiene acceso a una base de datos secuencialmente, el sistema crea un subproceso independiente para cada archivo en paralelo. Cuando el sistema realiza una exploracin de una tabla perteneciente a un grupo de archivos con cuatro archivos, utiliza cuatro subprocesosindependientesparaleerlosdatosenparalelo. En general, usar varios archivos en discos independientes mejora el rendimiento. Sin embargo, demasiados archivos en un grupo de archivos pueden producir demasiados subprocesosparalelosycrearcuellosdebotella.

d) Uso de grupos de archivos para realizar tareas de

mantenimiento
Adems de utilizar grupos de archivos para equilibrar las cargas de datos con el fin de mejorar el rendimiento, puede usar grupos de archivosparafacilitarlastareasdemantenimiento. Para usar grupos de archivos con el fin de simplificar las tareas de mantenimiento,puede: Realizarcopiasdeseguridadyrestaurararchivosogruposde archivosindividualesenlugardehacerlacopiadeseguridado la restauracin de toda la base de datos. Realizar copias de seguridad de los archivos o grupos de archivos puede ser necesarioenbasesdedatosgrandesconelfindedisponerde unaestrategiaeficazdecopiadeseguridadyrestauracin. Agrupar tablas e ndice con requisitos de mantenimiento similaresenlosmismosgruposdearchivos. Quiz desee realizar tareas de mantenimiento en algunos objetosconmsfrecuenciaqueenotros.Porejemplo,sicrea dos grupos de archivos y les asigna tablas, podr ejecutar diariamente tareas de mantenimiento en dichas tablas en un grupodiarioytareasdemantenimientosemanalesenellasen ungruposemanal.Estolimitalosconflictosdediscoentrelos dosgruposdearchivos. Asigne una tablaindividual de alto mantenimiento a su propio grupodearchivos.

Ing. Metssy A.Ygnacio Garca

91

Porejemplo,unatablaqueseactualizaconfrecuenciapodra necesitar que sus copias de seguridad y sus procesos de restauracinserealicenporseparadoenlabasededatos.

e) Consideraciones acerca de la creacin de grupos de archivos


La creacin de grupos de archivos definidos por el usuario es una tcnicaavanzadadediseodebasesdedatos.Debecomprenderen detallelaestructuradelabasededatos,losdatos,lastransacciones ylasconsultasparadeterminarlamejorformadecolocarlastablasy losndicesengruposdearchivosespecficos. Alcreargruposdearchivos,debehacerlosiguiente: Use requisitos de mantenimiento enlugar de consideraciones de rendimiento para determinar el nmero de grupos de archivos. En muchos casos, el uso de la capacidad de creacin de conjuntos de bandas de RAID proporciona casi el mismo rendimientoqueelquesepuedeconseguirconlosgruposde archivos definidos por el usuario, sin la pesada carga administrativadedefinirlosyadministrarlos. Cambieelgrupodearchivospredeterminadosiusagruposde archivos definidos por el usuario. Si la base de datos tiene varios grupos de archivos, debe asignar uno de los grupos definidos por el usuario como el predeterminado. Esto impedir que el crecimiento inesperado de la tabla exceda la capacidad de las tablas de sistema del grupo de archivos principal. Tenga en cuenta quelos grupos de archivos no proporcionan tolerancia a errores. Para incluir tolerancia a errores, puede reflejarcadadiscosiutilizaRAID1.Sinembargo,staesuna opcincara

7. OPTIMIZACIN DE LA BASE DE DATOS MEDIANTE GRUPOS DE ARCHIVOSCONRAIDBASADOENHARDWARE Puede combinar grupos de archivos con soluciones RAID basadas en hardware. Primero, configure la creacin de bandas de hardware y, despus, use los grupos de archivos para repartir los datos entre los diversosconjuntosdebandasdehardware. La ilustracin (Figura 3.5) muestra dos controladores que sealan dos conjuntosdebandasdehardware.Haycuatroarchivosasociadosconcada conjunto de bandas. Un grupo de archivos contiene todos los archivos de Ing. Metssy A.Ygnacio Garca
92

ambos conjuntos de bandas. Esta opcin reparte los datos de manera uniforme entre todos los discos a la vez que conserva la facilidad de administracin. Estaconfiguracinusalasmejorescaractersticasdelosgruposdearchivos yRAIDbasadoenhardware.Ademsdeproporcionaraccesoparaleloalos datosmedianteunsubprocesoindependienteparacadaarchivo,distribuye lacargaentrevariosdiscosparareducirposiblesconflictos.Dadoqueesta solucincreaunaagrupacinlgica,resultafcildeconfiguraryadministrar paraunadministradordebasesdedatosodesistemas

Figura3.5:CombinacindegruposdearchivosconsolucionesRAIDbasadasen hardware

8. ESTIMACINDELACAPACIDAD

Una delas principales funciones deun administrador de bases dedatoso desistemasesasignar,administrarysupervisarlosrequisitosdeespacioy almacenamiento de SQL Server y sus bases de datos. La estimacin del espacio que requiere una base de datos le puede ayudar a planear el esquemadealmacenamientoydeterminarlosrequisitosdehardware

a) Estimacin del tamao de una base de datos


Alplanearunabasededatos,seestablecesuestructuralgica.Bajo esa estructura hay varios archivos y objetos fsicos que ocupan Ing. Metssy A.Ygnacio Garca
93

espacio en disco. Entre stos se encuentran el registro de transacciones y las tablas e ndices que componen los archivos de datos. Cuandosecreaunabasededatos,SQLServercreaunacopiadela base de datos model, que incluye las tablas del sistema que contienen informacin acerca de archivos, objetos, permisos y restricciones. Estas tablas aumentan de tamao a medida que se crean ms objetos en la base de datos. Cada objeto que se crea generaunanuevafilaenunaovariastablasdelsistema. Factoresquedebetenerencuentacuandocalculeeltamaode unabasededatos Al calcular la cantidad de espacio que va a ocupar una base de datos,tengaencuentalossiguientesfactores: Tamao de la base de datos model y de las tablas del sistema,incluidalaprevisindecrecimiento. Cantidad de datos en las tablas, incluida la previsin de crecimiento. Nmeroytamaodelosndices,especialmenteeltamaodel valor delas claves, el nmero de filas y el valor del factor de relleno Tamao del registro de transacciones, al que afectan la cantidad y la frecuencia de la actividad de modificacin, el tamao de cada transaccin y la frecuencia de las copias de seguridadoelvolcadodelregistro. Tamao de las tablas del sistema, como el nmero de usuarios,objetos,etc.,quenosueleserunporcentajealtodel tamaodelabasededatos. b) Estimacin de la cantidad de datos en las tablas Despus de considerar la cantidad de espacio que se asigna a la base de datos model, debe calcular la cantidad de datos de las tablas, incluido el crecimiento previsto. Para calcularlo, puede determinarelnmerototaldefilas,eltamaodelasfilas,elnmero defilasquecabenenunapginayelnmerototaldepginasquese requierenparacadatabladelabasededatos. Puedecalcularelnmerodepginasnecesariasparaunatablayel espacio de disco que ocupa la tabla si conoce el nmero de caracteresdecadafilayelnmeroaproximadodefilasquelatabla vaatener.Utiliceelsiguientemtodo: Ing. Metssy A.Ygnacio Garca
94

Calculeelnmerodebytesdeunafilasumandoelnmerode bytes que contiene cada columna. Si una o varias columnas estn definidas con longitud variable (por ejemplo, una columna de nombres), puede sumar el valor medio de la columnaparahallareltotal. Determine el nmero de filas que caben en cada pgina de datos. Para hacerlo, divida 8060 entreel nmero de bytes de una fila. Redondee hacia abajo el resultadoal nmero entero siguiente. Dividaelnmeroaproximadodefilasdelatablaporelnmero de filas que caben en cada pgina de datos. El resultado es igual al nmero de pginas que se necesitan para almacenar latabla.

Ing. Metssy A.Ygnacio Garca

95

1. Cree unabase de datos yutilice elSQL Server Management Studio paraincrementararchivosalabasededatos. 2. Utilice el SQL Server Management Studio para reducir la base de datos. 3. Investigue acerca de los comandos para realizar las tareas anterioresatravsdeellos.

En esta unidad se describi cmo Microsoft SQL Server almacenalosdatosyprocesalastransaccionesademsdecmocrear, administrarycolocararchivosyregistrosdetransaccionesdebasesde datos,ascomolamaneradeoptimizarbasesdedatosmedianteRAID basadoenhardware, grupos de archivosdefinidos por elusuario y una combinacindeambos.

[1] Delaney, K. Inside Microsoft SQL Server 2005: the storage engine. Microsoft Press,2007 [2] STANEK,William. Ms.SQLServer2005ManualdelAdministrador . 1raEdicin, McGrawHill.2006. [3] Silberschatz,A.,Korth,H.F.,Sudarshan,S.,FundamentosdeBasesdeDatos,5 edicin,Madrid,2006. [4] MatsukawaMaeda,Sergio. ConozcayutiliceSQLServer2005, Lima,2005 [5] Date,C.J.An introduction to Database Systems.8edition.PearsonAddison Wesley.2004.

Ing. Metssy A.Ygnacio Garca

96

Bibliografaelectrnica: AdministracindeArchivosdebasesdedatos http://www.mygnet.net/manuales/sqlserver//administracion_de_archivos_de_base_d e_datos.1114 TutorialdeSQLServer2005 http://technet.microsoft.com/enus/library/ms169620(SQL.90).aspx TutorialdeAdministracindeBasedeDatos http://sistemas.itlp.edu.mx/tutoriales/admonbasedat/index.htm

Enlasiguienteunidadtrataremostemassobrecmocrearcopiasderespaldodebases dedatosylasestrategiasautilizarparanoperderlosdatosencasodealgndesastre.

Ing. Metssy A.Ygnacio Garca

97

ADMINISTRACION DE BASES DE DATOS

UNIDAD ACADMICA N 3
NOMBRE:__________________________________________________________________ APELLIDOS:________________________________________FECHA____/_____/______ CIUDAD:_______________________________SEMESTRE:_________________________

PARTEI:Marquelaalternativacorrecta: 1. Culdelassiguientessentenciaspuedeserusadoparacrearungrupodearchivo?: a) ALTERDATABASEADDFILE b) ALTERDATABASEMODIFYFILEGROUP c) ALTERDATABASEADDFILEGROUP d) ALTERDATABASEREMOVEFILEGROUP

2. Estas diseando la estructura fsica para el nuevo servidor de tu compaa corriendo SQLServer2005.Elservidortienelassiguientescaractersticas:dosdiscosenRAID1, cinco discos en RAID 5, y otros diez discos en RAID 5. Dnde almacenaras los archivosdebasededatosparaunmejorrendimiento? a) Usar RAID 5 para instalar el sistema operativo. Usar el primer set de discos RAID5parainstalarlosarchivosejecutablesdeSQLServer2005yelsegundo setdediscosRAID5paraalmacenarlosarchivosdebasededatos. b) Usar RAID 1 para instalar el sistema operativo. Usar el primer set de discos RAID5parainstalarlosarchivosejecutablesdeSQLServer2005ylosregistros dedatosytransacciones.UsarelsegundosetdediscosRAID5paraalmacenar losbackupsdebasededatos. c) Usar RAID 1 para instalar el sistema operativo y los archivos ejecutables de SQL Server 2005. Usar el primer set de discos RAID 5 para almacenar los archivos de registro de transacciones. Usar el segundo set de discos RAID 5 paraalmacenarlosarchivosdedatos. d) Usar el primer set de discos RAID 5 para instalar el sistema operativo y los archivosejecutablesdeSQLServer2005.Guardarlosarchivosdedatosenel segundo set de discos RAID 5. Usar el segundo set de discos RAID 5 para almacenarlosarchivosderegistrodetransacciones. 3. Culdelassiguientesopcionessontiposdegruposdearchivosvalidos? Ing. Metssy A.Ygnacio Garca
98

a) b) c) d)

Solo lectura Soloescritura Pordefecto Primario

PARTEII:Respondabrevemente: 4. CmosealmacenanlosdatosenSQLServer2005? _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ 5. Qualmacenaelregistrodetransacciones? _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ 6. Mencionelosmtodosparalareduccindelabasededatos _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ 7. Cmopuedecalcularseeltamaodeunabasededatos? _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________ _______________________________________________________________________

Ing. Metssy A.Ygnacio Garca

99

You might also like