2

쿼리 식 또는 FetchXML 대신에 네이티브 SQL을 사용하여 작업을 추가하거나 삭제할 수 있습니다. 쿼리식이 매우 유용하지만 실제 관심사는 성능이라고 생각했습니다. SQL 작성은 다른 것보다 빠를 수 있습니다.CRM 2011 용 네이티브 SQL 작성

+1

데이터베이스 행을 생성/삭제하기 위해'QueryExpression' 또는'FetchXml'을 사용할 수 없습니다 - 이것은 쿼리 메커니즘입니다. 그리고 쿼리를 위해 이러한 메커니즘은 결국 직접 SQL로 변환되므로 직접 SQL 액세스와 CRM API (다양한 SQL 공급자가 지원하는 쿼리의 경우)간에 속도 차이는 거의 없습니다. –

+0

@PeterMajeed 여하튼, 나는 그것에 픽업하지 못했다 (!) 나는 미묘함을 발견하지 않고 빨간 공황 버튼을 친 것 같다 ;-) 좋은 자리! –

+0

@ 그렉 : 당신의 빨간 공황 버튼은 받아 들여진 대답 + upvotes 가치가 있다고 생각합니다. API의 SQL CRUD 제한에도 불구하고 모든 엔터프라이즈 솔루션의 도움보다 네이티브 SQL로 속임수를 쓰는 것이 더 큰 문제입니다. –

답변

10

간단히 말해서 직접 작성 SQL (특히 작성/업데이트 작업의 경우)은 지원되지 않습니다. DO NOT DO IT!

CRM의 데이터베이스 모델은 복잡하고 데이터를 업데이트하면 간단한 업데이트 이상으로 단일 테이블 또는 두 가지로 확장 될 수 있습니다.

내 진짜 관심사는

가이 문제를 확인 적이 성능

입니까? CRM에 대한 성능 테스트를 문서화 한 this link을 살펴보십시오. 이것은 엔터프라이즈 급의 확장 가능한 플랫폼입니다. 성능 문제가 입증 된 경우 코드 최적화가 필요하거나 키트가 필요합니다 ...? :)

4

저는 Greg의 대답에 동의합니다. 이것은 성능과 관련하여 부수적 인 내용입니다. "성능 문제"가 실제로 나타나면 어쩌면 색인을 추가하면 도움이되는지 확인하는 데 집중해야합니다. 데이터베이스 인덱스는 CRM 솔루션에 포함되어 있지 않지만 dev, qa, 스테이징 및 테스트 환경 사이에서 수동 전파가 필요하며 현장 설치에서만 지원되므로 일부 쿼리를 10 배 또는 100 배 빠르게 수행 할 수 있습니다. (물론 학대를 당하면 모든 것을 느리게 할 수 있습니다.) 사용하기 전에 무엇을하고 있는지 알 수 있습니다.

0

@Greg & @Daryl의 말에, 성능을 말하면 SQL을 작성하는 것이 더 빠릅니까?

관계없이 CRM에는 일을하는 몇 가지 고유 한 방법이 있습니다.

예를 들어 activate/deactivate 레코드의 경우 invoice related 작업 또는 CRM이 Opportunity을 변환하는 방법입니다.

그렇게하기가 어렵지 않습니다. sdk ... ...

+0

MSSQL에서 BULK INSERT를 사용하면 service.create()보다 빠릅니다. 그러나 SQL을 올바르게 작성하는 것은 매우 어렵습니다. – zato