2013-10-31 1 views
1

MyDataBase에 SQL CLR 함수 MySchema.MyClrFunction이 있습니다. MyDataBase.MySchema.MyClrFunction을 통해 동일한 서버의 MyOtherDataBase에서 액세스 할 수 있으며 제대로 작동합니다. 어셈블리를 등록하고 Intradatabase 호출을 만들 수 있도록 MyDataBase에서 함수를 다시 만들어 성능을 향상시킬 수 있습니까?동일한 서버의 DB에서 SQL CLR에 액세스하는 데 성능에 영향이 있습니까?

예, 직접 테스트 할 수 있으며 이미 다른 사람이 작업을하지 않은 경우 가능성이 높습니다.

답변

1

측정 가능한 성능에 미치는 영향은 없을 것이라고 생각합니다. 많은 수의 행에 대한 하나의 쿼리와 많은 수의 작은 일괄 처리에 대한 두 가지 테스트 시나리오를 고려하더라도 함수는 다른 데이터베이스에서 한 번만 가져오고 캐시 된 상태로 유지됩니다. 그런데 각 어셈블리에 동일한 어셈블리가 설치되어 있으므로 100M 행에 대해서만 테스트를 수행했습니다. 차이 없음.

당신은 여기에 대한 자세한 내용을보실 수 있습니다 : 다른 데이터베이스에서 CLR 기능을 사용하기위한 몇 가지 금기가 Appdomain 그러나

. 예를 들어, 모든 데이터베이스는 어셈블리가 설치된 데이터베이스에 의존합니다. 오프라인으로 가져갈 수 없으며 충돌이 발생하면 일부 프로세스가 탈선합니다. 또한 다른 데이터베이스의 함수를 사용하여 계산 된 열을 만들 수 없습니다. 나를 위해 그것은 각 db별로 어셈블리를 설치하기에 충분했습니다.

관련 문제