sql server management coursecuallisys.com/curso_sqlserver/sql_server_manageme… ·  ·...

74
1 SQL Server 2008 Course Jesus Garcia Correa [email protected]

Upload: phungthu

Post on 13-May-2018

233 views

Category:

Documents


1 download

TRANSCRIPT

1

SQL Server 2008 Course

Jesus Garcia Correa

[email protected]

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.

12

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.

25

26

27

28

29

30

31

32

33

34

35

36

Ejemplos de Implementación

Se muestra la implementación de SQL Server en el ERP

SAP, basada en 3 niveles de servicio

37

Ejemplos de Implementación

38

Ejemplos de Implementación

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,

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