정 홍주 웹타임/책임 Microsoft .NET Advisor

Slides:



Advertisements
Similar presentations
마이크로소프트 OLAP 및 리포팅 솔루션을 근간으로 기간 시스템과 연계한 분석 시스템 구축 방안 우철웅기술이사컨설팅사업부 ㈜인브레인 I N B R E I N.
Advertisements

.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
SQL Server 2005 기반의 Microsoft Business Intelligence 전략 박명은 차장 SQL Technology Specialist 기술사업부 기업고객사업 한국마이크로소프트.
Lync 2013 소개 및 구축 가이드 화상, 음성 및 회의 SMS&P TSS 양영건 차장 Microsoft Lync
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Data Interface, Data mart Technology
소리가 작으면 이어폰 사용 권장!.
2장 닷넷 프레임워크.
서비스 브로커 및 통보 서비스 강사: 정 홍 주 ㈜웹타임 수석 컨설턴트.
SQL Server 개요 SQL Server의 역사를 파악한다. SQL Server 2008의 특징을 이해한다.
Database Laboratory, Hong Ik University
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
안재훈 기업고객사업본부/기술사업부 한국마이크로소프트
C#에서 데이터베이스 연동 방법.
iGrafx Consulting Group
3조 오세혁 김문환 김용현.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
PHP입문 Izayoi 김조흔.
DB와 WEB 연동(1) [2-Tier] Java Applet 이용
MySQL 및 Workbench 설치 데이터 베이스.
Young Jun, Son Partner Account Manager
Azure WebApp on Linux와 .NET Core
Excel OLAP Reporting / OWC를 이용한
인스톨쉴드9 데브스튜디오 사용 매뉴얼 (VB6에서 개발후 배포프로그램 만들기)
SQL Server 2000, SQL Server 2005 비교 자료
New 2007 Microsoft Office system
SSAS 변화된 구조와 사용자 분석 화면 구현 우철웅 기술이사 BI 사업부 인브레인.
XML WEB SERVICE PDA WEB HARD
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Visual Studio 2005와 SQL Server 2005 최상의 만남: SQLCLR vs. T-SQL
ASP.NET : Database 접근 2008 컴퓨터공학실험(Ⅰ)
Visual Basic 함수.
Windows Server 2008 보안 한국마이크로소프트.
How to use OLEDB using ATL
Chapter 7. RAS(전화접속,VPN) & IAS
Visual Basic .NET 처음 사용하기.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
ASP.NET Mobile Controls
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
NJM Messenger 박상원 박연호.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
Method & library.
Volume Licensing Service Center
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
JDBC Lecture 004 By MINIO.
영상처리 실습 인공지능연구실.
기업고객사업본부 / 기술사업부 한국마이크로소프트
웹 성능 및 부하 테스트(Load Test)를 통한 소프트웨어 품질 향상방안
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Smart Workplace 개발자 가이드
UI 테스트 자동화(Coded UI Test)를 통한 품질 혁신 가이드
VS 2005와 VS 2003 동급 제품, upgrade path
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
User Datagram Protocol (UDP)
C# O/R 디자이너- LINQ 이용.
15강. 폼 데이터 값 검증 Validator를 이용한 검증 ValidationUtils 클래스
Fucntion 요약.
( Windows Service Application Debugging )
SQL Server 2000 세미나 View, SP &Trigger
Name Title Company Name
오라클 11g 보안.
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
다자간 채팅프로그램 김형도 허영민
Stored program 장종원
CHAP 15. 데이터 스토리지.
 6장. SQL 쿼리.
DBMS & SQL Server Installation
7 생성자 함수.
Presentation transcript:

정 홍주 웹타임/책임 Microsoft .NET Advisor hongju@wtime.net SQL Server 2005에서의 CLR 정 홍주 웹타임/책임 Microsoft .NET Advisor hongju@wtime.net

세션 구성 SQL Sever 2005에서의 개발 데이터베이스에서의 관리 코드 SQLCLR과 T-SQL의 비교

SQL Server 2005에서의 개발

SQL Server 2005에서의 개발 SQL Server 2005 Data Transformation Services Analysis Services Notification Services SQL Server 2005 Full-Text Search Relational Database Engine Reporting Services .NET CLR Replication Service Broker Native HTTP Support

Relational data access 선택에 대한 딜레마 Computation & Framework access T-SQL CLR ? XML Semi-structured data access Relational data access

데이터베이스에서의 관리 코드 .NET hosted in SQL Server = "SQLCLR“ 관리 데이터베이스 개체 저장 프로시저, 사용자 정의 함수 트리거, 사용자 정의 형식 사용자 정의 집계 모든 .NET 언어에 의해 지원 Visual Studio .NET과의 통합 SQLCLR 개체의 생성 및 배포 SQL Server Project VS.NET에서의 디버깅 지원

Assembly: “TaxLib.dll” 데이터베이스에서의 관리 코드 Microsoft® Visual Basic .NET, C#, … Build Assembly: “TaxLib.dll” Microsoft® Visual Studio® .NET Project deploy SQL Data Definition: create assembly … create function … create procedure … create trigger … create type … Runtime hosted inside SQL SQL Queries: select sum(tax(sal,state) ) from Emp where county = ‘King’ Microsoft® SQL Server™

데이터베이스에서의 관리 코드 SQLCLR SQL Server와 같은 주소공간에서 실행 SQL 외부의 자원 활용 가능 SQL Server Process T-SQL function user .Net code database

관리되는 데이터베이스 개체 저장 프로시저 사용자 정의 함수 트리거 사용자 정의 형식 사용자 정의 집계

관리되는 데이터베이스 개체 저장 프로시저 Class에서 pubic, static 메서드 Void, int를 반환 SqlPipe.ExecuteAndSend, SqlPipe.Send…, public static void ExecuteToClient() { using (SqlConnection con = new SqlConnection("context connection=true")) { con.Open(); SqlCommand cmd = ..., SqlContext.Pipe.ExecuteAndSend(cmd); }

관리되는 데이터베이스 개체 사용자 정의 함수 Scalar-Valued 함수 - single 값 반환 Table-Valued 함수 - IEnumerable 개체 반환 public static IEnumerable RSS_TVF() { return new RssReader(); }

관리되는 데이터베이스 개체 트리거 SqlTriggerContext 이용 SqlTrigger 어트리뷰트 이용 - Name, Target, Event 속성 정의 SqlTriggerContext trg = SqlContext.TriggerContext; if (trg.TriggerAction == TriggerAction.Update) { if (trg.IsUpdatedColumn(7) == true) //send e-mail to each new contact }

관리되는 데이터베이스 개체 사용자 정의 형식 사용자 정의 형식에 대한 정렬,비교 (예, ‘X.Y’) INullable에서 파생 Null, Parse, ToString, IsNull 구현 public struct Point : INullable { public override string ToString() {... } public bool IsNull {... } public static Point Null {... } public static Point Parse(SqlString s) {... } }

관리되는 데이터베이스 개체 사용자 정의 집계 Sum, Avg 같은 집계함수의 사용자 정의 Init, Accumulate, Merge, Terminate 메서드 생성 public void Init() {…} public void Accumulate(SqlString Value){…} public void Merge(CommaDelimit Group){…} public SqlString Terminate(){…}

SQLCLR 개체 생성 및 배포 ,디버깅

SQLCLR과 T-SQL의 비교 T-SQL SQLCLR 인터프리트 방식 복잡한 프로시저 코드에 대해서는 제한적 데이터 중심의 접근은 유리 SQLCLR 컴파일 방식 복잡한 프로시저 코드에 대해서 유리 .NET BCL 이용

사용자 정의 함수 T-SQL SQLCLR 인터프리트 방식으로 SQLCLR이 더 빠름 T-SQL은 Worktable에 결과를 저장 SQLCLR UDF 이용 계산에 활용 계산시 데이터 액세스 오버헤드 없이 사용 가능 SqlFunction – DataAccessKind 속성 다중 문에는 TVF가 유리 IEnumerator, IEnumerable

외부 자원 액세스 SQLCLR 외부 자원 액세스에 유리 File System Event Log Web Service Client Registry

Syntax Check T-SQL SQLCLR Static SQL CREATE PROC 시점 check CREATE FUNCTION 시점 check Determinism, Precision SQLCLR Dynamic, 런타임에 에러 발생 SqlFunction 속성

데이터 액세스 T-SQL SQLCLR SQL을 호출하는데 효과적 SQL과 데이터 버퍼와 스택 프레임 공유 스택 프레임 분리 Native->관리코드로 오버헤드 발생 SqlContext가 데이터 액세스를 캡슐화

매개 변수 T-SQL SQLCLR 입력(Input) 매개 변수 출력(Output) 매개 변수 - INOUT ByVal=T-SQL Input ByRef=T-SQL Output Out= 없음

데이터 형식 SQLCLR 기본 .NET 타입-데이터베이스에서의 null 이 없음 “RETURNS NULL on NULL INPUT” 이용 - 사용자 정의 함수에서 사용 System.Data.SqlTypes 이용 - SQL과 .NET 데이터 형식의 매치 - Null 처리에 용이 VARCHAR, TIMESTAMP 표현에 제한

SQLCLR Pipelined Result T-SQL 결과는 완료했을때 가용 완료되기 전까지는 row를 가져올 수 없음 한번에 하나씩 가져오거나 Pipeline SQLCLR SqlPipe 최적화 SendResultsStart SendResultRow SendResultEnd

SQLCLR 데이터 액세스 SQLCLR은 ADO.NET을 이용 SqlClient와 클래스 공유 추가 서버측 클래스 Microsoft.SqlServer.Server.SqlContext SqlPipe WindowsIndentity SqlTriggerContext SQLCLR은 데이터베이스 자원을 이용 상황에 따라 서버와 클라이언트에서 적절히 활용 DBA의 관심 요구

세션 요약 T-SQL 사용 SQLCLR 사용 기본적인 데이터 액세스 처리 CLR 로드 되지 않는 동작 SQL 동작을 래핑 사용자 정의 함수 계산 집중적인 저장 프로시저, 복잡한 로직 SQL Server 외부 자원 액세스 T-SQL에서 제공되지 않는 기능 (.NET BCL 사용)

참고자료 MSDN On-Demand Webcasts MSDN SQL Develop Center http://msdn.microsoft.com/sql/ SQL Server 홈 http://www.microsoft.com/korea/sql/ MSDN On-Demand Webcasts http://www.microsoft.com/events/series/msdnsqlserver2005.mspx

© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.