Trigger und Event Notifications im

nostrilshumorousInternet and Web Development

Nov 18, 2013 (4 years and 1 month ago)

84 views


Trigger und Event
Notifications

im

SQL Server 2005

Artus Krohn
-
Grimberghe

Ehem. Student Partner

Microsoft Student Program

artuskg@gmail.com

Microsoft SQL Server 2005 Architektur

Komponenten des
SQL Server 2005

RDBMS

ETL Werkzeug

OLAP Server

Data Mining

Reporting
-
Dienste

Management
-
Tools

Entwicklungs
-
Tools

Analysis Services

OLAP & Data Mining

Integration Services

ETL

SQL Server

Relational Engine

Reporting Services

Management Tools

Development Tools

Agenda

Aktive Komponenten

DML
-

und DDL
-
Trigger

Event
Notifications

Ausblick SQL Server 2008

Aktive Komponenten

SQL Server Agent

Jobs (Automatisierung)

Alerts

(Ereignis und Aktion)

Trigger

Event
Notifications

Declarative

Management Framework (ab

Katmai
“)

Agenda

Aktive Komponenten

DML
-

und DDL
-
Trigger

Event
Notifications

Ausblick SQL Server 2008

DML
-

und DDL
-
Trigger

Prozeduren, die bei Datenbankereignissen
automatisch ausgeführt werden

Laufen im Kontext des Auslösers ab (sind
Teil der Transaktion, die sie ausgelöst hat)

Können den Auslöser zurückrollen

Werden nur einmal pro Befehl ausgeführt


DML
-

und DDL
-

/ LOGON
-
Trigger

AFTER
-

und INSTEAD OF
-
Trigger

T
-
SQL
-

und .NET
-
Trigger

Ausführung im Kontext

Zurückrollen der Transaktion möglich

Beim Zurückrollen entstehen doppelte
Kosten, daher n.M.
constraints

(Datentyp,
CHECK, DEFAULT, PK, FK, DRI) benutzen

Berechtigungskontext beachten!


CREATE TRIGGER trg1 ON dbo.tbl1 AFTER
INSERT

AS

IF EXISTS(SELECT * FROM
inserted

WHERE
col1 = <
some_value
>) ROLLBACK
TRANSACTION

Verschachtelung und Rekursion

Trigger können standardmäßig andere
Trigger auslösen

Trigger können sich selbst aufrufen (ALTER
DATABASE <
name
> SET
RECURSIVE_TRIGGERS ON;)


AFTER Trigger

inserted

und
deleted

Spezialtabellen

inserted
: Zeilen für INSERT und UPDATE

deleted
: Zeilen für UPDATE und DELETE


Mehrere Trigger pro Objekt möglich
(Reihenfolge nur als „
first
“ und „last“;
sp_settriggerorder
)


INSTEAD OF Trigger

Original
-
Anweisung wird durch den Code
des Triggers komplett ersetzt

inserted

und
deleted

enthalten die Daten,
die geändert worden *
wären*!

Nie rekursiv, immer nur einer pro Operation

Auch auf Sichten möglich

Werden *
vor
*
contraint
-
Prüfung ausgeführt

DDL Trigger

Auf Datenbank oder Serverebene

Für einzelne DDL Ereignisse oder Gruppen

EVENTDATA() Funktion

Nur AFTER Trigger


CREATE TRIGGER
ddlTrigger

ON
DATABASE FOR DROP_TABLE


CLR Trigger

Trigger können seit SQL Server 2005 in .NET
geschrieben werden

Zugriff auf die .NET Klassenbibliotheken

Zugriff auf externe Ressourcen


Warnung: Transaktion erst beendet, wenn
Trigger fertig! Externe Aufrufe eine
Sicherheitsproblem!


[
SqlTrigger
(Event=„FOR INSERT“)]

public

static

void

trg_LogToEventlog
() { …

Agenda

Aktive Komponenten

DML
-

und DDL
-
Trigger

Event
Notifications

Ausblick SQL Server 2008

Trigger bieten im Vergleich zu Event
Notifications

den Vorteil, dass sie im
Kontext der sie auslösenden Transaktion
ablaufen (und sie daher auch zurückrollen
können). Gleichzeitig leiden sie aber auch
an dem eklatanten Nachteil, dass sie im
Kontext der sie auslösenden Transaktion
ablaufen (und die Transaktion folglich
warten muss, bis jegliche
Triggeraktivität

beendet ist, ehe sie fortfahren kann)!


WAITFOR DELAY ‚0:03‘; …

Event
Notifications

„Asynchrone Antworten auf ein Ereignis“

Können keine Transaktionen zurückrollen!


Trigger:

Reaktion auf DML und DDL Ereignisse

Führen Code aus

Event
Notifications
:

Reaktion auf DDL und
Trace
/Performance
Ereignisse (CREATE TABLE,
LOCK_DEADLOCK,…)

Senden XML
-
Nachrichten

Voraussetzungen für Event
Notifications

SQL Server 2005 oder neuer

Service Broker Nachrichtenwarteschlange
muss aktiviert sein

Ein Dienst, der auf EN reagiert, muss erstellt
werden

Erweiterte Service Broker Funktionalität
(Aktivierung, …)
kann genutzt werden

Agenda

Aktive Komponenten

DML
-

und DDL
-
Trigger

Event
Notifications

Ausblick SQL Server 2008

Management by Intent

Today

From Managing by scripts


By default SQL Server 2005
turns off sensitive features
e.g. CLR, Database Mail and
OLE Automation


To enable CLR and Database
Mail the DBA must either:

Use Surface Area
Configurator

(SAC) tool to
explicitly enable these
features OR

Use T
-
SQL script to do so


To monitor complian
ce the
DBA will manually run SAC or her
script regularly

Tomorrow

To Management by Policies


In Katmai, Declarative Management
Framework (DMF) will offer easy
configuration, automation and enforcement


To enable CLR and Database Mail with
DMF, the DBA will simply

Define a policy to enable these
features

From Management Studio simply run
the policy


Compliance checking:
DMF will
automatically enforce the policy

based on a schedule OR

it will check once a user changes the
configuration


Reporting:

DMF r
eports

policy violation
each time it occurs

Can run on multiple servers
automatically


Advanced Performance
Analysis

Extensible Data Collector



Katmai will collect
performance data e.g.
memory usage, disk usage,
etc



User can also define other
sets of events for tracking



Performance Data
Warehouse



The Performance data warehouse
will store deep data on SQL
Server’s performance including
query performance and locking
issues



The data can be analyzed to offer
deep insights on SQL Server’s
performance

Rich Performance

Reports



Historical data on database
performance

will be displayed in
rich reports



Reports will allow drill downs
for root cause analysis

Administratives…

PASS


Professional
Association

for

SQL
Server

„Die“ SQL Server Nutzergruppe!

www.sqlpass.de


Regelmäßige SQL Server Workshops und
BootCamps

Nutzergruppentreffen


von Usern für User

SQL Jedis und SQL
Rookies



jeder ist
willkommen

Ressourcen SQL Server

http://www.microsoft.com/sql

http
://connect.microsoft.com/SQLServer


http://forums.microsoft.com/MSDN


http://www.microsoft.com/vhd


MSDN AA für Informatik
-
Studenten!

Inside SQL Server Buch
-
Reihe

Data Mining
with

Microsoft SQL Server 2005
(Tang, MacLennan)

Microsoft Certified Professional,
Technology Specialist, IT Professional, …

http://www.microsoft.com/mcp


Microsoft Student Program

Friedrich
-
Schiller
-
Universität Jena

Fakultät für Mathematik und Informatik

25

Microsoft Software für Euch kostenlos!!!



Betriebssysteme (Vista, XP, 2003, …)


SQL Server 2005


Visual Studio 2005


Office Visio, Project, Access, InfoPath






Euer Ansprechpartner:

Dr. Günter
Schorr

(EAP Raum 3416)

MSDN
-

Academic Alliance

26

Veranstaltungen an der FSU Jena


ASP.NET 2.0 Workshop


24.
-
25. März 2007


12.
-
13. Mai 2007



… weitere Veranstaltungen in Planung!

Ankündigung unter:
www.dotnetcommunity.de


27

Microsoft Student Partner an der FSU Jena


Stefan
Kontschinsky

(Dipl. Informatik)




stefan.kontschinsky@studentprogram.de


Auch Student Partner werden:

www.studentprogram.de


Fragen

Was ist neu am SQL Server 2005

.NET Framework


Common Language Runtime Integration


User
-
defined Aggregates


User
-
defined Data Types


User
-
defined Functions


SQL Server .NET Data Provider


Extended Triggers


Data Types



Managed SQL Types



New XML
Datatype


SQL Server Engine



New Message Service Broker


HTTP Support (Native HTTP)


Database Tuning Advisor


Multiple Active Result Sets


Persisted Computed Columns


Queuing Support



Snapshot Isolation Level


Scale Up Partitioning



VIA support


NUMA support


Database Failure and Redundancy


Fail
-
over Clustering (up to 8 node)


Enhanced Multi
-
instance Support


Database Mirroring



Database Viewpoints

XML




XQUERY Support (Server & Mid Tier)


XML Data Manipulation Language



FOR XML Enhancements



XML Schema (XSD) Support


MSXML 6.0 (Native)



.Net

XML Framework

Notification Services & SQL Server CE


Database Maintenance



Backup and Restore Enhancements


Checksum Integrity Checks


Dedicated Administrator Connection


Dynamic AWE



Fast Recovery



Highly
-
available Upgrade



Online Index Operations



Online Restore



Parallel DBCC



Parallel Index Operations


Management Tools


New Management Studio


MDX Query Editor



Version Control Support



XML/A



SQLCMD Command Line Tool

Performance Tuning



Profiler Enhancements



Profiling Analysis Services


Exportable
Showplan



Exportable Deadlock Traces

Full
-
text Search


Indexing of XML
Datatype

MDAC


Side by Side installation


Microsoft Installer base setup


Support for Active Directory Deployment

SQL Client .NET Data Provider


Server Cursor Support


Asynch

Security



All Permissions Grantable


Fine Grain Administration Rights


Separation of Users and Schema

Replication


Auto
-
tuning Replication Agents


Oracle Publication


Improved Blob Change Tracking

OLAP and Data Mining


Analysis Management Objects


Windows Integrated Backup and Restore


Web Service/XML for Analysis


DTS and DM Integration


New Data Mining Algorithms


Auto Packaging and Deployment

Data Transformation Services


New Architecture (DTR + DTP)


Complex Control Flows



Control Flow Debugging



For Each Enumerations



Property Mappings


Full Data Flow Designer



Full DTS Control Flow Designer


Graphical Presentation of
Pkg

Execution


Immediate Mode and Project Mode


Package (Advanced) Deployment Tools


Custom Tasks and Transformations

Reporting Services


Multiple Output Formats


Parameters (Static, Dynamic, Hierarchical)


Bulk Delivery of Personalized Content


Support Multiple Data Sources


STS (Web Parts, Doc Libraries)


Visual Design Tool


Charting, Sorting, Filtering, Drill
-
Through


Scheduling, Caching


Complete Scripting Engine


Scale Out architecture


Open XML Report Definition

Transparent Data
Encryption

External Key Management

Data Auditing

Pluggable CPU

Transparent Failover for
Database Mirroring

Declarative Management
Framework

Server Group Management

Streamlined Installation

Enterprise System
Management

Performance Data
Collection

System Analysis

Data Compression

Query Optimization Modes

Resource Governor

Entity Data Model

LINQ

Visual Entity Designer

Entity Aware Adapters



SQL Server Change Tracking

Synchronized Programming Model

Visual Studio Support

SQL Server Conflict Detection

FILESTREAM data type

Integrated Full Text Search

Sparse Columns

Large User Defined Types

Date/Time Data Type

LOCATION data type

SPATIAL data type

Virtual Earth Integration

Partitioned Table Parallelism

Query Optimizations

Persistent Lookups

Change Data Capture

Backup Compression

MERGE SQL Statement

Data Profiling

Star Join


Enterprise Reporting
Engine

Internet Report
Deployment

Block Computations

Scale out Analysis

BI Platform Management

Export to Word and Excel

Author reports in Word
and Excel

Report Builder
Enhancements

TABLIX

Rich Formatted Data

Personalized
Perspectives

… and many more