2010-02-19 2 views
1

SQL Server 나 다른 RDBMS에서는 사용할 수없는 함수와 논리를 사용하여 데이터베이스에 레코드를 삽입하고 업데이트하려고합니다. 오늘 아침에 인터넷 검색을 한 후, 확장 저장 프로 시저 개념을 접했습니다. 지금까지 내가 말할 수있는 한, 나는 dll에 원하는 기능을 컴파일 할 수 있어야하고, 삽입/업데이트를하기 위해 그 dll을 이용하는 저장된 proc를 만들어야한다.확장 저장 프로 시저에 대한 생각

그러나 대부분의 기사와 예제는 다소 오래되었습니다 (~ 2000). 확장 스토어드 프로 시저가 여전히 수용 가능한 방식입니까? 나는이 분야의 전문가와 거리가 멀기 때문에 다른 제안이나 의견도 크게 환영 할 것입니다.

+1

MSSSQL 또는 다른 RDMBS에서 사용할 수없는 논리가 있는지 궁금합니다. 사용할 수없는 특정 라이브러리입니까? 다른 RDMBS를 보셨습니까? 신탁? DB2? 포스트그레스? – FrustratedWithFormsDesigner

+0

@FrustratedWithFormsDesigner - 전형적인 것은 SQL Server에서 정규 표현식입니다. .NET에서 간단하게 수행 할 수 있지만 SQL Server에 기본 제공되지 않음 – AdaTheDev

+0

궁금한 점 - 왜 그 논리를 데이터베이스에 넣으시겠습니까? –

답변

8

SQL Server 2005 이상을 사용하는 경우 SQL CLR을 살펴볼 영역입니다. SQL Server 내에서 .NET 코드를 호출 할 수 있습니다.

This MSDN의 기사를 시작하는 것이 좋습니다.

2

확장 저장 프로 시저가 여전히 수용 가능합니까? ?

아니요, 공식 사용되지 않으며 이후 릴리스에서 지원되지 않습니다. 아니 SQL 서버 테이블의 향후 버전에서 지원되는 기능에, Deprecated Database Engine Features in SQL Server 2008를 참조하십시오

  • 확장 저장 프로 시저 프로그래밍 : 사용 CLR 통합 대신.
2

일반적으로 CLR 절차를 사용하지 않는 것이 좋습니다. 대개의 경우 문제를 직면하게 될 문제를 리팩토링하여 Transact Sql에서 처리 할 수 ​​있습니다. 대부분의 관심사는 관계 기반 데이터베이스가 집합 기반 작업을 수행 할 때 가장 잘 수행 할 때 CLR 절차 사용에 수반되는 절차 방식입니다.

그래서 항상 묻는 첫 번째 질문은 어쨌든 문제를 세트 기반 작업으로 리팩토링하는 것입니다.

그렇다면 응용 프로그램 계층이 아닌 데이터베이스 서버 내부에서 코드를 실행하려는 이유는 무엇입니까? 로직을 데이터베이스에 배치하여 성능에 미치는 영향을 생각해보십시오. (DB 서버에 추가 처리 시간이 충분하면 문제가되지 않을 수도 있습니다.

CLR 절차를 진행하는 경우 집중적 인 계산과 복잡한 논리에 가장 잘 부합한다고 생각합니다.

관련 문제