1
SQL Server 2008 Course
Jesus Garcia Correa
Objetivos
Conocer la forma almacenamiento físico
y lógico de una Base de Datos en MS
SQL Server, para poder Implementar y
Administrar una Base de Datos como
una solución integral, donde los datos
dependen del almacenamiento físico
disponible.
3
Que es exactamente SQL
Server?
SQL Server es un Enterprise-Class Database Management System, que es capaz de soportar almacenamiento específico desde información proveniente de Windows Movil hasta
The SQL Server Database Engine
El DataBase Engine es el core principal de SQL Server, el cual se ve reflejado mediante un servicio Windows, sus Principales responsabilidades son:
•Proporcionar almacenamiento confiable de los datos
•Proporcionar un medio para recuperar rápidamente los datos •Proporcionar acceso consistente a los datos
5
Reliable Storage
(Almacenamiento Confiable)
El Almacenamiento confiable comienza a nivel de hardware, esto no es responsabilidad del DataBase Engine, pero es parte de un buen diseño de la base de datos:
•La base de datos puede colocarse en diferentes IDE o SATA drives
•La mejor manera de asegurar la confiabilidad es manteniendo los datos en RAID arrays.
•El mas común arreglo RAID es capaz de soportar fallas de hardware a nivel de disco, sin perder datos.
Rapid Data Access
SQL Server permite la creación de índices, habilitando el rápido acceso a datos.
Otra manera de proveer acceso rápido a los datos es
manteniendo accesos a datos frecuentes en memoria, cuando se realiza una consulta, SqlServer Database Engine verifica primero si la información se encuentra en cache. Si no esta, lee la información del disco y la almacena en el storage
cache.
Rapid Data Access
SQL Server permite la creación de índices, habilitando el rápido acceso a datos.
Otra manera de proveer acceso rápido a los datos es
manteniendo accesos a datos frecuentes en memoria, cuando se realiza una consulta, SqlServer Database Engine verifica primero si la información se encuentra en cache. Si no esta, lee la información del disco y la almacena en el storage
7
Consistent Data Access
La obtención de información rápida y constante no significa que esta deba ser incorrecta, SQL Server contiene un
conjunto de normas y políticas que asegura que los datos que se reciben de una consulta sean consistentes. La idea
general de la consistencia de los datos es permitir solo un cliente a la hora de modificar los datos y prevenir la
consistencia durante la lectura de datos mientras se estan experimentando cambios.
La consistencia de datos y transacciones son mantenidos utilizando transactional locking.
Access Control
SQL Server controla los accesos brindando seguridad en
múltiples niveles, la seguridad se aplica a los servidores, base de datos, schemas, y niveles objetos. A nivel de acceso al
servidor se aplica la seguridad directa de SQL Server o a través de integrated network security.
9
Data Integrity
Algunas bases de datos sirven como Front-End de mas de una aplicación, una DB que contiene información
indispensable puede ser objeto de acceso para varios departamentos para cubrir distintas necesidades. En un
ambiente como el descrito, la mejor manera de mantener los datos sanos y utilizables por todos, es hacer cumplir un
conjunto de reglas de integridad de datos, en la propia base de datos.
SQL Server 2008 Administration and Management
Tools
SQL Server 2008 y SQL Server 2008 R2 proveen un conjunto de herramientas para administrar el SQL Server DataBase
11
SQL Server Management
Studio (SSMS)
SSMS es la consola central de administración, desde la cual se realizan las tareas de gestión a las bases de datos. Provee una interfaz simple desde la cual pueden ser visualizados y administrados, todos los servidores dentro de la roganización.
13
Las siguientes son algunas tareas que se pueden realizar desde SSMS
•Gestionar varios servidores desde una sola interfaz
•Configurar las opciones de servidor y los valores de configuración, tales como la cantidad de memoria y número de procesadores que se utilizarán, el idioma predeterminado y la ubicación por defecto de los datos y los
archivos de registro.
•Administrar inicios de sesión, los usuarios de bases de datos y roles.
•Crear, editar y programar trabajos automatizados a través del Agente SQL Server.
• Copia de seguridad y restaurar bases de datos y definir los planes de mantenimiento.
•Crear nuevas bases de datos. Navegar por contenidos de la tabla
•Crear y administrar objetos de base de datos, como tablas, índices y procedimientos almacenados
Las siguientes son algunas tareas que se pueden realizar desde SSMS
•Generar scripts DDL para bases de datos y objetos de base de datos.
•Configurar y administrar Replicaciones.
•Crear, editar, ejecutar y depurar Transact-SQL (T-SQL) scripts
•Definir, implementar, administrar e invocar las políticas de SQL Server
•Habilitar y deshabilitar características de SQL Server.
15
SQL Server Configuration Manager
SQL Server Configuration Manager es una herramienta proveída por SQL Server para la administración de los
servicios asociados a él, y para configurar los protocolos de red usados por SQL Server. Primariamente SQL Server
Configuration Manager, es utilizado para iniciar, pausar, reiniciar y detener los servicios asociados a SQL Server, o para cambiar las propiedades de los mismos.
SQL Server Agent
El Agente de SQL Server es una herramienta decalendarización integrada en SSMS que permite la definición y ejecución de scripts calendarizados y trabajos de
mantenimiento. SQL Server Agent que corre al mismo tiempo que el servicio principal de ejecución, este puede ser detenido o reiniciado, cada job en espera de ejecución puede ser
17
SQL Server Profiler
El SQL Server Profiler es una interface GUI que captura las queries y los resultados provenientes del engine de la base de datos, esto es análogo a un sniffer. El profile puede
capturar y salvar todas las transacciones realizadas desde T-SQL. Esto sirve para realizar el debbuging de consultas
Replicación
Replicación es una herramienta basada en servidor que se puede utilizar para sincronizar datos entre 2 o mas base de datos, la replicación puede enviar datos desde una instancia de SQL Server a otra, o replicar datos hacía Oracle, o
cualquier otra base de datos vía ODBC o OLEDB, SQL Server soporta 3 tipos de replicación:
•Snapshot replication
•Transactional replication •Merge replication
La disponibilidad y funcionalidad de la replicación puede ser restringida, dependiendo de la edición del producto.
19
SnapShot Replication
Este tipo de replicación, el servidor toma una foto o snapshot, de los datos en una tabla en un punto en el tiempo.
Usualmente la operación es calendarizada, y cada snapshot reemplaza al anterior, según la configuración. Esta manera de replicación es recomendada para pequeños data sets, su
Transactional Replication
La replicación transaccional, funciona emitiendo la consulta hecha en el servidor en producción hacia otro de respaldo, esta tipo de replica normalmente puede mantener los datos de las DB sincronizados 5 segundos, dependiendo del tipo de carga y de producción que se posea, será el factor principal para determinar si es viable o no utilizar este tipo de
21
Merge Replication
Con snapshot y transactional replication solo existe una sola fuente de datos la cual envía a muchas otros target de
respaldo, en algunas otras situaciones podría ser necesario o conveniente permitir replicaciones desde los targets y
fusionar la información posteriormente, la sincronización de esta información puede realizarse segundos después de recibida. Por ejemplo Outlook.
Inmediate Updating
Este Tipo de replicación es la mas sencilla y se ejecuta al mismo tiempo que se hace la consulta, escribiendo en el target, para hacer eso utiliza un trigger distribuido.
23
Mas Características
•Full-Text Search•SQL Server Integration Services (SSIS): Es una plataforma para construir soluciones de alto desempeño de integración de datos y soluciones tipo workflow.
•SQL Server Analysis Services (SSAS): Provee
procesamiento analítico en línea para soluciones Business Inteligence.
•SQL Server Reporting Services (SSRS): es reporteador cliente servidor, que entrega reportes especializados web.
Storage Area
Network
•Son Redes que se realizan mediante Canales.
•Administran el trafico FC •Provee alto nivel de
conectividad en los canales de comunicación
•Permiten la comunicación entre distintos dispositivos.
36
Ejemplos de Implementación
Se muestra la implementación de SQL Server en el ERP SAP, basada en 3 niveles de servicio
37
39
Administración por Consola
La utilidad sqlcmd le permite escribir instrucciones
Transact-SQL, procedimientos del sistema y archivos de script en el símbolo del sistema, en el Editor de consultas en modo SQLCMD, en un archivo de script de Windows o en un paso de trabajo del sistema operativo (Cmd.exe) de un trabajo del Agente de SQL Server.
40
Funciones DBCC
El lenguaje de programación Transact-SQL proporciona instrucciones DBCC que actúan como comandos de consola de base de datos en SQL Server.
Las instrucciones de comandos de consola de base de datos se dividen en las siguientes categorías.
Acciones Categoría
Operaciones de validación en una base de datos, tabla, índice, catálogo, grupo de archivos o
asignación de páginas de base de datos.
Validación
Tareas que recopilan y muestran diversos tipos de información
Informativa
Tareas varias como habilitar marcas de seguimiento o quitar una DLL de la memoria.
Varias
Tareas de mantenimiento en las bases de datos, los índices o los grupos de archivos
41
Funciones DBCC
Los siguientes comandos DBCC operan en una instantánea de la base de datos interna de solo lectura que crea el Motor de base de datos. Así se evitan problemas de bloqueo y
simultaneidad cuando se ejecutan estos comandos.
DBCC CHECKTABLE DBCC CHECKFILEGROUP DBCC CHECKCATALOG DBCC CHECKDB DBCC CHECKALLOC
Funciones DBCC
Cuando se ejecuta uno de estos comandos DBCC, el Motor de base de datos crea una instantánea de la base de datos y la pone en un estado coherente desde el punto de vista
transaccional. El comando DBCC ejecuta entonces las
comprobaciones de esta instantánea. Una vez completado el comando DBCC, la instantánea se quita.
Algunas veces no es necesaria una instantánea de la base de datos interna o no se puede crear. Cuando esto ocurre, el
comando DBCC se ejecuta de nuevo en la base de datos real. Si la base de datos está en línea, el comando DBCC
utiliza el bloqueo de tabla para asegurar la coherencia de los objetos que está comprobando.
43
Funciones DBCC
No se crea ninguna instantánea de la base de datos interna al ejecutar un comando DBCC:
•En master y cuando la instancia de SQL Server se está ejecutando en el modo de usuario único.
•En una base de datos distinta de master, pero cuando la base de datos se haya puesto en el modo de usuario único mediante la instrucción
ALTER DATABASE.
•En una base de datos de solo lectura.
•En una base de datos que se ha establecido en modo de emergencia mediante la instrucción ALTER DATABASE.
•En tempdb. En este caso, no se puede crear una instantánea de la base de datos debido a restricciones internas.
•Utilizando la opción WITH TABLOCK. En este caso, DBCC respeta la solicitud no creando ninguna instantánea de la base de datos.
Los comandos DBCC utilizan bloqueos de tabla en lugar de instantáneas internas de la base de datos cuando el comando se ejecuta en:
•Un grupo de archivos de solo lectura •Un sistema de archivos FAT
•Un volumen que no admite "secuencias con nombre" •Un volumen que no admite "secuencias alternativas"
45
Funciones DBCC
DBCC CHECKALLOC (Transact-SQL)
Comprueba la coherencia de las estructuras de asignación de espacio en disco de una base de datos determinada.
-- Checa en la base de datos actual: DBCC CHECKALLOC;
GO
-- Ejemplo
DBCC CHECKALLOC (AdventureWorksDW2008R2); GO
Funciones DBCC
DBCC CHECKCATALOG (Transact-SQL)
Comprueba la coherencia del catálogo en la base de datos especificada. La base de datos debe en línea.
DBCC CHECKCATALOG(AdventureWorksDW2008R2); GO
DBCC CHECKTABLE (Transact-SQL)
Comprueba la integridad de todas las páginas y estructuras que constituyen la tabla o la vista indizada.
USE AdventureWorksDW2008R2; GO
DBCC CHECKTABLE ("DimDate"); GO
47
Funciones DBCC
DBCC CHECKDB (Transact-SQL)
Comprueba la integridad física y lógica de todos los objetos de la base de datos especificada mediante las siguientes operaciones:
•Ejecuta DBCC CHECKALLOC en la base de datos.
•Ejecuta DBCC CHECKTABLE en todas las tablas y vistas de la base de datos. •Ejecuta DBCC CHECKCATALOG en la base de datos.
•Valida el contenido de cada vista indizada de la base de datos.
•Valida la coherencia de nivel de vínculo entre los metadatos de la tabla y los directorios y archivos del sistema de archivos cuando almacena datos varbinary(max) en el sistema de archivos mediante FILESTREAM.
•Valida los datos de Service Broker en la base de datos.
DBCC CHECKDB (AdventureWorksDW2008R2, NOINDEX); GO
Funciones DBCC
DBCC FREESESSIONCACHE (Transact-SQL)
Vacía la caché de conexión de las consultas distribuidas utilizada por las consultas distribuidas con una instancia de MicrosoftSQL Server.
USE AdventureWorksDW2008R2; GO
DBCC FREESESSIONCACHE; GO
49
Funciones DBCC
DBCC SHOW_STATISTICS muestra las estadísticas de optimización de consulta actuales de una tabla o vista indizada. El optimizador de consultas utiliza las estadísticas para estimar la cardinalidad o el número de filas del resultado de la consulta, lo que hace posible que el optimizador de consultas pueda crear un plan de consulta de alta calidad. Por ejemplo, el optimizador de consultas podría utilizar las estimaciones de cardinalidad para elegir el operador index seek en lugar del operador index scan en el plan de consulta, lo que mejoraría el rendimiento de las consultas al evitar el examen de índices con una gran cantidad de recursos.
USE AdventureWorks; GO
DBCC SHOW_STATISTICS ("Person.Address", AK_Address_rowguid) WITH HISTOGRAM; GO
USE AdventureWorks; GO
DBCC SHOW_STATISTICS ("Person.Address", AK_Address_rowguid); GO
Funciones DBCC
DBCC USEROPTIONS
Devuelve las opciones SET activas (establecidas) para la conexión actual. USE AdventureWorks;
GO
DBCC USEROPTIONS; GO
DBCC SQLPERF
Proporciona estadísticas de uso del espacio del registro de transacciones para todas las bases de datos. También puede utilizarse para reiniciar las estadísticas de esperas y bloqueos temporales.
USE AdventureWorks;
DBCC SQLPERF(LOGSPACE); GO
51
Funciones DBCC
DBCC HELP
Devuelve información de la sintaxis del comando DBCC especificado.
USE AdventureWorks; DBCC HELP ('?');
SET (Transact-SQL)
El lenguaje de programación Transact-SQL ofrece varias instrucciones SET que cambian el tratamiento de información específica por parte de la sesión actual. Las instrucciones SET se agrupan en las categorías que figuran en la siguiente tabla.
•Instrucciones de fecha y hora •Instrucciones de bloqueo
•Otras instrucciones
•Instrucciones de ejecución de consultas •Instrucciones de configuración de ISO •Instrucciones de estadísticas
53
SET (Transact-SQL)
SET DATEFIRST (Transact-SQL) (FECHA Y HORA)
Establece el primer día de la semana en un número del 1 al 7. SET DATEFIRST 7;
SELECT CAST('1999-1-1' AS datetime2) AS FechaSeleccionada ,DATEPART(dw, '1999-1-1') AS DiaDeLaSemana;
Se selecciona el día domingo por default (7) y se muestra el valor de un viernes (la fecha indicada) el resultado es 6.
SET DATEFIRST 3;
Se indica el primer día en 3, dando como resultado el día 3 para la misma fecha. SELECT CAST('1999-1-1' AS datetime2) AS FechaSeleccionada
SET (Transact-SQL)
SET DATEFORMAT (Transact-SQL) (FECHA Y HORA)
Establece el orden de las partes correspondientes al mes, día y año de una fecha para interpretar las cadenas de caracteres date, smalldatetime, datetime,
datetime2 y datetimeoffset.
SET DATEFORMAT dmy; GO DECLARE @datevar datetime2 = '31/12/2008 09:01:01.1234567'; SELECT @datevar; GO
Selecciona el formato dmy
SET DATEFORMAT dmy; GO DECLARE @datevar datetime2 = '12/31/2008 09:01:01.1234567'; SELECT @datevar; GO
55
SET (Transact-SQL)
SET LOCK_TIMEOUT (INSTRUCCIONES DE BLOQUEO) Especifica el número de milisegundos que una instrucción espera a que se libere un bloqueo.
SET LOCK_TIMEOUT 1800 GO
En el ejemplo siguiente se establece el período de tiempo de espera de bloqueo en 1800 milisegundos.
SET (Transact-SQL)
SET LANGUAGE (Transact-SQL) (OTRAS INSTRUCCIONES)
Especifica el entorno de idioma de la sesión. El idioma de la sesión determina los formatos de datetime y los mensajes del sistema.
DECLARE @Today DATETIME SET @Today = '12/5/2007'
SET LANGUAGE Italian
SELECT DATENAME(month, @Today) AS 'Month Name' SET LANGUAGE us_english
SELECT DATENAME(month, @Today) AS 'Month Name' SET LANGUAGE spanish
SELECT DATENAME(month, @Today) AS 'Month Name' GO
57
SET (Transact-SQL)
SET CONCAT_NULL_YIELDS_NULL (OTRAS INSTRUCCIONES)
Determina si los resultados de la concatenación se tratan como valores NULL o como valores de cadena vacía.
PRINT 'Seteando CONCAT_NULL_YIELDS_NULL ON'; GO
SET CONCAT_NULL_YIELDS_NULL ON; GO
SELECT 'abc' + NULL ; GO
-- SET CONCAT_NULL_YIELDS_NULL OFF SET CONCAT_NULL_YIELDS_NULL OFF; GO
SELECT 'abc' + NULL; GO
58
SET (Transact-SQL)
SET NOCOUNT (Instrucciones de ejecución de consultas)
Evita que se devuelva el mensaje que muestra el recuento del número de filas afectadas por una instrucción o un procedimiento almacenado de Transact-SQL como parte del conjunto de resultados. USE AdventureWorks;
GO
SET NOCOUNT OFF; GO
-- Muestra el mensaje con el numero de columnas afectadas. SELECT TOP(5)AddressLine1
FROM Person.Address
WHERE AddressLine1 LIKE 'A%'; GO
-- No Muestra el mensaje con el numero de columnas afectadas. SET NOCOUNT ON;
GO
SELECT TOP(5)AddressLine1 FROM Person.Address
59
SET (Transact-SQL)
SET FMTONLY (Instrucciones de ejecución de consultas)
Devuelve sólo metadatos al cliente. Se puede usar para probar el formato de la respuesta sin ejecutar realmente la consulta.
USE AdventureWorks; GO
SET FMTONLY OFF; GO
SELECT *
FROM Person.Address GO
SET FMTONLY ON; GO
SELECT *
FROM Person.Address GO
SET (Transact-SQL) SET STATISTICS IO (Estadísticas)
Hace que SQL Server muestre información relacionada con la cantidad de actividad de disco generada por las instrucciones Transact-SQL.
USE AdventureWorks
SET STATISTICS IO ON; -- Cambiar a OFF GO
SELECT TOP 1000 [AddressID] ,[AddressLine1] ,[AddressLine2] ,[City] ,[StateProvinceID] ,[PostalCode] ,[rowguid] ,[ModifiedDate] FROM [AdventureWorks].[Person].[Address]
61
SET (Transact-SQL) SET STATISTICS TIME (estadísticas)
Muestra el número de milisegundos necesarios para analizar, compilar y ejecutar cada instrucción.
USE AdventureWorks
SET STATISTICS TIME ON; GO
SELECT * from Production.ProductCostHistory where StandardCost < 500.00
GO
SET STATISTICS TIME OFF; GO
SET (Transact-SQL) SET STATISTICS XML (estadísticas)
Hace que Microsoft SQL Server ejecute instrucciones Transact-SQL y genere información detallada sobre cómo se ejecutaron las instrucciones en un documento XML definido
correctamente.
USE AdventureWorks GO
SET STATISTICS XML ON; GO -- Primera Consulta SELECT * FROM HumanResources.Employee WHERE NationalIDNumber = '509647174'; GO -- Segunda consulta. SELECT * FROM HumanResources.Employee WHERE Title LIKE 'Production%'; GO
SET STATISTICS XML OFF; GO
63 SET TRANSACTION ISOLATION LEVEL (Transacciones)
Controla el comportamiento del bloqueo y de las versiones de fila de las instrucciones Transact-SQL emitidas por una conexión a SQL Server.
USE AdventureWorks GO
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; GO BEGIN TRANSACTION; GO SELECT * FROM HumanResources.EmployeePayHistory; GO SELECT * FROM HumanResources.Department; GO COMMIT TRANSACTION; GO SET (Transact-SQL)
64
Procedimientos Almacenados Del Sistema En SQL Server, muchas actividades administrativas e
informativas se pueden realizar mediante los procedimientos almacenados del sistema. Los procedimientos almacenados del sistema se agrupan en las categorías que aparecen a continuación:
Procedimientos almacenados de Active Directory Se utilizan para registrar instancias de SQL Server y bases de datos de SQL Server en Active Directory de Microsoft Windows 2000. Procedimientos almacenados del catálogo Se utilizan para implementar las funciones del diccionario de datos ODBC y aislar las aplicaciones ODBC de los cambios en las tablas subyacentes del sistema.
65
Procedimientos Almacenados Del Sistema En SQL Server, muchas actividades administrativas e
informativas se pueden realizar mediante los procedimientos almacenados del sistema. Los procedimientos almacenados del sistema se agrupan en las categorías que aparecen a continuación:
Procedimientos almacenados de Active Directory Se utilizan para registrar instancias de SQL Server y bases de datos de SQL Server en Active Directory de Microsoft Windows 2000. Procedimientos almacenados del catálogo Se utilizan para implementar las funciones del diccionario de datos ODBC y aislar las aplicaciones ODBC de los cambios en las tablas subyacentes del sistema.
66
Procedimientos Almacenados Del Sistema
Procedimientos almacenados de cursor Se utilizan para implementar la funcionalidad de variable de cursor.
Procedimientos almacenados del motor de base de datos Se utilizan para el
mantenimiento general del SQL Server Database Engine (Motor de base de datos de SQL Server).
Procedimientos almacenados de Correo electrónico de base de datos y SQL Mail
Se utilizan para realizar operaciones de correo electrónico desde una instancia de SQL Server.
Procedimientos almacenados de planes de mantenimiento de bases de datos Se utilizan para configurar las tareas de mantenimiento fundamentales necesarias para administrar el rendimiento de las bases de datos.
Procedimientos almacenados de consultas distribuidas Se utilizan para implementar y administrar consultas distribuidas.
Procedimientos almacenados de la búsqueda de texto completo Se utilizan para implementar y consultar índices de texto completo.
Procedimientos almacenados del trasvase de registros Se utilizan para establecer, modificar y supervisar las configuraciones de trasvase de registros.
Procedimientos almacenados de automatización Permiten habilitar el uso de objetos de automatización estándar en un lote estándar de Transact-SQL.
67
Procedimientos Almacenados Del Sistema
Procedimientos almacenados de administración basada en directivas Se usan para la administración basada en directivas.
Procedimientos almacenados de replicación Se utilizan para administrar la replicación.
Procedimientos almacenados de seguridad Se utilizan para administrar la seguridad.
Procedimientos almacenados de SQL Server Profiler Lo utiliza SQL Server Profiler para supervisar el rendimiento y la actividad.
Procedimientos almacenados del Agente SQL Server Los utiliza el Agente SQL Server para administrar actividades programadas y controladas por eventos.
Procedimientos almacenados de XML Se utilizan para la administración del texto XML.
Procedimientos almacenados extendidos generales Proporcionan una interfaz de una instancia de SQL Server a los programas externos para diversas actividades de mantenimiento.
Procedimientos Almacenados Del Catalogo
sp_column_privileges
Devuelve información acerca de los privilegios de columna de una tabla del entorno actual. USE AdventureWorks;
GO
EXEC sp_column_privileges @table_name = 'Employee' ,@table_owner = 'HumanResources'
,@table_qualifier = 'AdventureWorks' ,@column_name = 'SalariedFlag';.
sp_databases
Enumera las bases de datos que residen en una instancia del SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005) o que están accesibles a través de una puerta de enlace de la base de datos.
USE master; GO
69
Procedimientos Almacenados Del Catalogo
sp_table_privileges
Devuelve una lista de permisos de tabla (como INSERT, DELETE, UPDATE, SELECT o REFERENCES) para la tabla o las tablas especificadas.
USE AdventureWorks; GO
EXEC sp_table_privileges @table_name = 'Contact%';
sp_stored_procedures
Devuelve una lista de los procedimientos almacenados del entorno actual. USE AdventureWorks;
GO
Procedimientos Almacenados Del Motor de DB
sp_datatype_info
Devuelve información acerca de los tipos de datos que admite el entorno actual. USE master;
GO
EXEC sp_datatype_info; GO
sp_clean_db_free_space
Quita la información residual que queda en las páginas de base de datos a causa de las rutinas de modificación de datos en SQL Server. sp_clean_db_free_space limpia todas las páginas de todos los archivos de la base de datos.
USE master GO
EXEC sp_clean_db_free_space @dbname = N'AdventureWorks' ;
71
Procedimientos Almacenados Del Motor De DB
sp_configure
Muestra o cambia las opciones de configuración global del servidor actual.
En este ejemplo se muestra cómo establecer y enumerar todas las opciones de configuración. Para ver las opciones de configuración avanzadas, primero hay que
establecer en 1 el valor de show advanced option. A continuación, si se ejecuta sp_configure sin parámetros, se mostrarán todas las opciones de configuración.
USE master; GO EXEC sp_configure 'show advanced option', '1';
Este es el mensaje: "Se ha cambiado la opción de configuración 'show advanced options' de 0 a 1. Ejecute la instrucción RECONFIGURE para instalar".
ejecutamos RECONFIGURE y se muestran todas las opciones de configuración: RECONFIGURE;
72
sp_who
Proporciona información acerca de los usuarios, sesiones y procesos actuales en una instancia de SQL Server Database Engine (Motor de base de datos de SQL Server) de Microsoft. La información se puede filtrar para obtener sólo los procesos que están activos, que pertenecen a un usuario específico o que pertenecen a una sesión específica.
Mostrar la lista de todos los procesos actuales
En el ejemplo siguiente se utiliza sp_who sin parámetros para informar de todos los usuarios actuales. USE master;
GO EXEC sp_who; GO
Mostrar un proceso de un usuario específico
En el ejemplo siguiente se muestra cómo ver información acerca de un usuario actual a partir de su nombre de inicio de sesión.
USE master; GO
EXEC
sp_who ‘ejemplo'; --EXEC sp_who 'active'; Todos los procesos activos
73
Procedimientos Almacenados Del Sistema
Ejercicio
Utilizando procedimientos almacenados, realizar una copia de la base de datos AdventureWorks,
74
Procedimientos Almacenados Del Sistema
Solución
use master GO
EXEC sp_addumpdevice 'disk', 'dispositivo', 'C:\Program Files\Microsoft SQL
Server\MSSQL10_50.MSSQLSERVER2\MSSQL\DATA\dispo sitivo.bak'
GO
BACKUP DATABASE AdventureWorks TO dispositivo
WITH FORMAT; GO