2014-08-29 1 views
0

SQL CLR과 비교할 수있는 데이터베이스 기술이 있습니까?SQL CLR과 비교할 수있는 데이터베이스 기술이 있습니까?

특히 SQL 문에서 직접 호출 할 수있는 공유 메모리 (예 : 정적 변수)를 사용하는 C#과 같은 일반적인 프로그래밍 언어로 고성능 루틴을 코딩 할 수있게 해주는 도구는 무엇입니까?

+0

Postgres는 Perl, Python 또는 JavaScript와 같은 저장 함수에 대해 다양한 언어를 지원합니다. 원할 경우 Postgres를 C로 코딩 할 수도 있습니다. "공유 메모리"로 무엇을 의미하는지 확신 할 수 없습니다. –

+0

다른 데이터베이스 서버에있는 기술을 의미합니까? –

+0

예, 다른 데이터베이스 서버와 유사한 기술입니다. 아이디어는 .NET이나 Java 같은 대형 프레임 워크를 활용하고 SQL에서 직접 사용할 수있는 함수를 작성하는 것입니다. "공유 메모리"는 기본적으로 정적 변수를 의미합니다. SQL CLR 메서드를 호출하면 일반 .NET 응용 프로그램과 같은 정적 변수에 액세스 할 수 있으므로 함수를 호출하면 런타임 캐시에서 카운터를 증가 시키거나 뭔가를 볼 수 있습니다. – Triynko

답변

0

아니요.

더 구체적인 목표를 달성하는 데 도움이 될 것입니다.

디자인/접근 방법에 결함이있을 수 있습니다.

고성능 루틴을 코딩해야하는 경우 데이터베이스에 내장되어 있지 않아야합니다. 중간 계층을 구현하고 거기에 루틴을 배치해야합니다.

+0

디자인상의 결함이 없습니다. CLR은 TSQL보다 단순하고 빠르며 TSQL이 할 수없는 작업을 수행하거나 TSQL에서 휠을 다시 만드는 작업을 포함합니다. – Triynko

+0

예를 들어, 부울 CLR 루틴을 호출하는 check-constraints가 있습니다.이 필드는 SQL 업데이트 나 SQL Server Management를 사용하는 수정을 통해 데이터베이스에 커밋 된 정규 표현식과 일치합니다. 사진관. 나는 단순히 "EmailAddress"또는 "Username"과 같은 특정 데이터 클래스에 문자열을 캐스팅하려고 시도하는 그러한 함수에 대해 저수준 MSIL 코드를 방출하는 자동화 된 배포 메커니즘을 가지고 있습니다.이 클래스는 모두 RegexConstrainedStringClass에서 상속합니다. – Triynko

+0

중요한 것은 단일 .NET/CLR 클래스가 데이터를 사용하는 응용 프로그램뿐만 아니라 데이터베이스 자체에서도 데이터 형식 규칙을 적용한다는 것입니다. 잘못된 데이터가 데이터베이스 나 시스템에 입력되는 것은 기능적으로 불가능합니다. 이러한 유형 검사 확인 제한은 활성 상태이고 신뢰할 수있을 때 SSMS와 같은 것을 통해서조차도 잘못된 수정을 방지하기 때문입니다. 또한 EmailAddress와 같은 일부 형식은 정렬을 위해 분류 할 수 있습니다. 예를 들어 TSQL에서 수행 할 수있는 "@"기호 앞에있는 것만을 기반으로 할 수 있지만 .NET 코드를 통해 훨씬 잘 처리되는 유형이 있습니다. – Triynko

관련 문제