Presentation is loading. Please wait.

Presentation is loading. Please wait.

SQL Server 2000 세미나 View, SP &Trigger

Similar presentations


Presentation on theme: "SQL Server 2000 세미나 View, SP &Trigger"— Presentation transcript:

1 SQL Server 2000 세미나 View, SP &Trigger
주최: Microsoft 강사: 정원혁

2 차 례 뷰 뷰를 사용하는 목적 만들기 /고치기 /지우기 / 암호화 뷰를 통한 데이터 변경 with check option
시스템 뷰 색인된 뷰

3 차 례 프로시저 일반 SQL 문장과 프로시져의 차이 컴파일이 성능에 미치는 영향 매개 변수 사용 return 문
컴파일 해야만 하는 경우

4 차 례 트리거 수행순서 지정 instead of 트리거 트랜잭션과의 관계 숨어있는 두 테이블 다중 행의 처리 중첩 트리거
재귀 트리거 성능에 미치는 영향

5 뷰 를 사용하는 목적 편의성 보안 네트웍 트래픽

6 만들기/ 고치기/ 지우기/ 암호화 CREATE VIEW [owner.]VIEW_name
(column_name [, column_name]...)] [WITH ENCRYPTION] AS select_statement [WITH CHECK OPTION]

7 뷰를 통한 데이터 변경/ 고려사항 입력되지 않는 컬럼: default , null, identity, timestamp
뷰를 통한 데이터 변경/ 고려사항 입력되지 않는 컬럼: default , null, identity, timestamp 계산된 컬럼/ 파생된 컬럼들 한번에 한 테이블만 수정할 수 있다 Order by

8 with check option with check option 시스템 뷰 SELECT * FROM sysobjects
WHERE type = 'V' SELECT * FROM information_schema.views

9 색인 (Indexed view) CREATE TABLE tempdb..a ( c1 int , c2 int
, c3 as (c1 * c2) ) insert tempdb..a values (2, 3) go create index idx on tempdb..a (c3)

10 색인된 뷰 use northwind go CREATE VIEW vTotalProduct WITH SCHEMABINDING AS
SELECT productid, sum( unitPrice * Quantity) as Total , sum(quantity) as totQty , COUNT_BIG(*) as count FROM dbo.[order details] GROUP BY productid Go CREATE UNIQUE CLUSTERED INDEX idx ON vTotalProduct (productid)

11 파티션드 뷰 CREATE TABLE SUPPLY1 (
supplyID INT PRIMARY KEY CHECK (supplyID BETWEEN 1 and 150), supplier CHAR(50) ) ….. CREATE TABLE SUPPLY4 ( supplyID INT PRIMARY KEY CHECK (supplyID BETWEEN 451 and 600),

12 파티션드 뷰 CREATE VIEW all_supplier_view AS SELECT * FROM SUPPLY1
UNION ALL SELECT * FROM SUPPLY2 SELECT * FROM SUPPLY3 SELECT * FROM SUPPLY4

13 스토어드 프로시저

14 만들기/ 고치기 / 지우기 CREATE PROC[EDURE] procedure_name [;number]
[ data_type} [VARYING] [= default] [OUTPUT] ] [,...n] [WITH { RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION } ] [FOR REPLICATION] AS sql_statement [...n]

15 어떻게 수행되나 /SQL 문 Parsing 이름확인 보안 점검 최적화(Optimize) Compile

16 어떻게 수행되나 /SP 만들때 Parsing 이름확인 보안 점검 결과저장 첫 실행 최적화(Optimize) Compile

17 프로시저의 장점 트래픽 편의성 매개변수 보안 성능 향상 (No more compile)

18 실행 Exec 매개 변수 리턴 값 반드시 컴파일 해야 할 때

19 트리거 정의 만들기/ 고치기/ 지우기 테이블 당 개수

20 만들기 CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] {     { { FOR | AFTER | INSTEAD OF }         { [ DELETE ] [ , ] [ INSERT ] [ , ] [ UPDATE ] }         [ WITH APPEND ]         [ NOT FOR REPLICATION ]         AS         sql_statement [ ...n ]     } ….

21 수행 순서 sp_settriggerorder
sp_settriggerorder 'MyTrigger', 'first', 'UPDATE' FIRST LAST NONE 하나씩만 지정가능

22 INSTEAD OF Trigger Example
Non-updateable view CREATE VIEW AuthorsView AS SELECT au_fname+ ' ' + au_lname as au_name, au_id, phone, address, city, state, zip, contract FROM authors

23 INSTEAD OF Trigger Example
CREATE TRIGGER AuIns on AuthorsView INSTEAD OF INSERT AS BEGIN INSERT authors(au_id,au_fname,au_lname,…) SELECT au_id, dbo.ExtractNamePart(au_name, 1), dbo.ExtractNamePart(au_name, 2), phone, address, city, state, zip, contract FROM inserted END INSERT AuthorsView VALUES(‘John Doe’, …)

24 트랜잭션과 관계 암시적 트랜잭션 Rollback 숨은 테이블 Inserted Deleted 중첩 트리거 재귀 트리거

25 다중 행 처리 (1) alter trigger trg2 on sales2 for insert as
int int = 0 = count(*) from inserted begin insert sales3 values ('aa', 10) + 1 end

26 다중 행 처리 (2) alter trigger trg2 on sales2 for insert as insert sales3
select * from inserted go

27 기타 중첩 트리거 재귀 트리거 성능에 미치는 영향


Download ppt "SQL Server 2000 세미나 View, SP &Trigger"

Similar presentations


Ads by Google