Upload
phungthu
View
239
Download
1
Embed Size (px)
Citation preview
2
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
Aplicaciones con Terabytes de información.
4
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
•Controlar el acceso a datos a través de la seguridad
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.
6
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
cache.
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.
8
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.
10
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
Engine y otros componentes
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
14
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.
•Administrar y organizar scripts dentro de proyectos.
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.
16
SQL Server AgentEl Agente de SQL Server es una herramienta de
calendarizació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
visualizado para su correcta administración.
17
SQL Server ProfilerEl 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
complejas y seguir la traza de errores inesperados.
18
ReplicaciónReplicació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 ReplicationEste 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
administración es sencilla.
20
Transactional ReplicationLa 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
replicación.
21
Merge ReplicationCon 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.
22
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.
24
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
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.
Ejemplos:
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.
AccionesCategorí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
Mantenimiento
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 CHECKDBDBCC CHECKALLOC
42
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.
44
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"
Funciones DBCC
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
46
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
48
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
50
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 ('?');
GO
52
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
•Instrucciones de transacciones
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
,DATEPART(dw, '1999-1-1') AS DiaDeLaSemana;
54
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
Error
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.
56
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
WHERE AddressLine1 LIKE 'A%';
GO
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
60
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]
Las estadísticas se muestran en el campo de mensaje
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
62
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.
68
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
EXEC sp_databases;
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
EXEC sp_stored_procedures;
70
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;
EXEC sp_configure;
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
GO
Procedimientos Almacenados Del Motor De DB
73
Procedimientos Almacenados Del Sistema
Ejercicio
Utilizando procedimientos almacenados, realizar una copia de la base de datos
AdventureWorks,