Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

terça-feira, 4 de outubro de 2011

SQL Server 2008 - Modulo 09 - Curso 6231

--AULA 01 - Viewing Current Activity

-- ====================================================================================
-- Autor        : Lineu Alves Lima Filho
-- Data Criação    : 19/02/2009
-- Descrição    : Módulo 09
-- ====================================================================================
-- Versão        : 1.0
-- ====================================================================================
-- Versão            :
-- Data Atualização    :
-- ====================================================================================


--Overview of Activity Monitor


--Dynamic Management Views and Functions

--Visualizando as sessões que estão utilizando mais processamento
SELECT    session_id,    --ID da sessão
        cpu_time    --Utilização do processamento em milesegundos
FROM sys.dm_exec_requests
ORDER BY cpu_time DESC



--Comparar com a System Procedure abaixo
sp_who2 --active



--Visualizando número de processos de leitura e escrita enviadas para o arquivo de LOG
SELECT    database_id,    --ID do banco de dados
        num_of_reads,    --Número de processos de leitura enviadas para o arquivo
        num_of_writes    --Número de processos de escrita enviadas para o arquivo
FROM sys.dm_io_virtual_file_stats(DB_ID('AdventureWorks'), 2) --2 é o ID do arquivo de LOG



--Descobrindo o ID dos arquivos de banco de dados
USE AdventureWorks
GO
SELECT name, file_id
FROM sys.database_files



--Visualizando informações de hardware do servidor
SELECT    cpu_count,                    --Número de processadores lógicos
        physical_memory_in_bytes,    --Quantidade de memória física disponível
        sqlserver_start_time        --Data e hora da última vez que o SQL Server foi reiniciado
FROM sys.dm_os_sys_info




SELECT * FROM sys.dm_tran_locks


--AULA 02 - 002 - Using SQL Server Profiler
-- ====================================================================================
-- Autor        : Lineu Alves Lima Filho
-- Data Criação    : 19/02/2009
-- Descrição    : Módulo 09
-- ====================================================================================
-- Versão        : 1.0
-- ====================================================================================
-- Versão            :
-- Data Atualização    :
-- ====================================================================================


--Overview of SQL Server Profiler



-------------------------------------------
--Sessão 01
-------------------------------------------

USE AdventureWorks2008
GO
SELECT COUNT(*) FROM Person.Person





-------------------------------------------
--Sessão 01
-------------------------------------------

USE [master]
GO
SELECT name, compatibility_level, state_desc
FROM sys.databases



--AULA 03 - 003 - Monitoring with DDL Triggers


-- ====================================================================================
-- Autor        : Lineu Alves Lima Filho
-- Data Criação    : 19/02/2009
-- Descrição    : Módulo 09
-- ====================================================================================
-- Versão        : 1.0
-- ====================================================================================
-- Versão            :
-- Data Atualização    :
-- ====================================================================================

--Exemplo 1

USE [master]
GO

IF EXISTS    (SELECT * FROM sys.databases
             WHERE [name] = 'DB6231')
DROP DATABASE DB6231
GO

CREATE DATABASE DB6231
GO

USE DB6231
GO


CREATE TABLE auditoria
(
    codigo        INT                IDENTITY,
    maquina        NVARCHAR(100),
    dados        XML
)



CREATE TRIGGER DDL_audita_tabela
ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS
INSERT INTO auditoria(maquina, dados) VALUES (HOST_NAME(), EVENTDATA())
GO



CREATE TABLE TEST
(
    codigo    INT                IDENTITY,
    nome    VARCHAR(50)
)
GO



SELECT * FROM auditoria



ALTER TABLE TEST
ADD PRIMARY KEY (codigo)



SELECT * FROM auditoria



DROP TABLE TEST



SELECT * FROM auditoria



DROP TRIGGER DDL_audita_tabela
ON DATABASE





--Exemplo 2

USE [master]
GO

IF EXISTS    (SELECT * FROM sys.databases
             WHERE [name] = 'DB6231')
DROP DATABASE DB6231
GO

CREATE DATABASE DB6231
GO

USE DB6231
GO


CREATE TABLE auditoria
(
    codigo        INT                IDENTITY,
    data        DATETIME,
    maquina        SYSNAME    ,
    usuario        NVARCHAR(100),
    evento        NVARCHAR(100),
    comando        NVARCHAR(2000),
    dados        XML
)



CREATE TRIGGER DDL_audita_tabela
ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS
DECLARE @data XML
SET @data = EVENTDATA()
INSERT INTO auditoria (data, maquina, usuario, evento, comando, dados)
VALUES (GETDATE(),
        HOST_NAME(),
        CURRENT_USER,
        @data.value('(/EVENT_INSTANCE/EventType)[1]', 'NVARCHAR(100)'),
        @data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'NVARCHAR(2000)'),
        EVENTDATA())
GO



CREATE TABLE TEST
(
    codigo    INT                IDENTITY,
    nome    VARCHAR(50)
)
GO



SELECT * FROM auditoria



ALTER TABLE TEST
ADD PRIMARY KEY (codigo)



SELECT * FROM auditoria



DROP TABLE TEST



SELECT * FROM auditoria



DROP TRIGGER DDL_audita_tabela
ON DATABASE





--Exemplo 3

USE [master]
GO
CREATE TRIGGER DDL_logins
ON ALL SERVER
FOR CREATE_LOGIN
AS
PRINT 'Você não tem permissão para criar login. Entre em contato com o DBA!'
ROLLBACK



--Criando um login
USE [master]
GO
CREATE LOGIN [app_user] WITH PASSWORD='123',
    DEFAULT_DATABASE=[master],
    CHECK_EXPIRATION=OFF,
    CHECK_POLICY=OFF
GO

Nenhum comentário:

Postar um comentário

Related Posts Plugin for WordPress, Blogger...