2012-05-17 3 views
0

확인을 누릅니다. SS 2008에는 기본 정규식 기능이 없습니다. CLR을 사용하여 추가 할 수도 있습니다. 정규식 CLR이 http://msdn.microsoft.com/en-us/magazine/cc163473.aspx 인 것으로 나타났습니다.하지만 어떻게해야 할 지 모르겠습니다.SQL Server 2008 RegEx CLR 사용

그래서 두 가지 질문이 있습니다. 정규식은 2 개의 필드에 대해 레코드를 한 번에 최대 1,000,000 개, 연간 최대 50,000,000 개까지 가져올 때만 사용됩니다.

첫 번째 질문. 나는 수동으로 한 번에 하나의 레코드를 내 코드 (ASP.NET)에서 수행 할 수 있으며, 성능에 영향을 미칠 것이라는 것을 알았지 만 얼마나 큰지 알지 못했습니다. 이것에 대한 모든 입력?

두 번째 질문입니다. 누군가 내가 다운로드 한 CLR 파일을 설치하는 방법에 대한 단계별 지시로 간단한 단계를 가르쳐 주시겠습니까? 검색을 시도했으나 필요한 정보가 표시되지 않았거나 다른 정보에 너무 빠져서 찾지 못했습니다.

감사합니다.

P. 저는 SS 2008 (R2가 아님) 및 VS.NET 2008을 실행 중입니다.

+0

MSDN에는 t-sql에서 CLR dll을 배포하는 방법에 대한 정보가 있습니다. http : //msdn.microsoft.com/en-us/library/ms345099.aspx ... 예 : HelloWorld를 'c : \ helloworld.dll'에서 생성하십시오. PERMISSION_SET = SAFE; – Charleh

+0

당신은 당신의 기록을 가져온 것을 말하지 않습니까? 다른 데이터베이스에서? 파일 에서요? 파일의 경우 형식은 무엇입니까? –

+0

플랫 파일 (csv)에서 가져 오기 2 개의 필드에서 영숫자가 아닌 모든 문자를 제거해야합니다. –

답변

1

전체 자습서는 article here을 참조하십시오.

+0

독서를 시작했지만 다른 것으로 산만 해졌습니다. 내가 필요한 것을 다룰 것 같아. –

0

데이터로드에 REGEX 만 필요한 경우 ASP.NET에서 한 번에 하나의 레코드를 수행 할 수 있습니다. SQL CLR 통합을 사용하는 경우에도 SQL은 한 번에 하나의 레코드 만 전달하므로 SQL은 한 번에 하나의 레코드 만 전달합니다. where 절에서 REGEX를 조건으로 사용하려면 SQL CLR 통합 만이 유일한 옵션입니다.

내가하고있는 일은 한 번에 한 줄씩 구문 분석하는 것입니다. 한 줄은 1 - 5 개의 SQL 삽입이됩니다. 그런 다음 SQL inserts asynch를 수행합니다. 다음 구문 분석이 삽입되기 전에 완료되면 기다린다. 제 경우에는 죽은 열에 관한 것이므로 병렬 처리가됩니다. SQL에서 regex를 호출하면 직렬 처리로 제한됩니다.

데이터를 많이 파싱하고로드합니다. 속도가 걱정된다면 구문 분석보다 SQL 쪽을 더 살펴보십시오. 지금까지 SQL 인덱스를 구문 분석하고 1000 만 레코드를로드하지 않도록 설정 한 다음 인덱스를 다시 작성합니다. 정규식은 SQL 테이블에 인덱스가없는 경우를 제외하고 일반적으로 SQL 삽입보다 빠릅니다.

+0

성능 차이가 많이 있습니까? DB로 전송되는 100 만 건의 업데이트 명령 또는 CLR 기능을 사용하는 하나의 업데이트 명령? 히트가 약간이라면 클라이언트에 기능을 설치하지 않아도되기 때문에 ASP.NET 옵션이 더 매력적입니다. –