2010-03-29 4 views
3

플랫폼의 속도와 Dynamics CRM 4에서 데이터에 액세스 할 수있는 유지 관리의 측면에서 가장 좋은 방법은 무엇입니까? 나는이 세 가지를 다했으나 군중의 의견에 관심이있었습니다. 웹 서비스 통해Dynamics CRM에서 데이터에 액세스하는 방법은 무엇입니까?

API를
  • 통해
    • 직접
    • 통해 DB의 의견

    ... 왜 호출?

    내 의견은 일반적으로 뷰에 대한 DB 호출을 중심으로하지만 거기에는 순수 주의자가 있다는 것을 알고 있습니다.

  • 답변

    2

    두 가지 요구 사항을 모두 감안할 때보기를 호출하고 싶다고 말하고 싶습니다. 적절하게 만들어진 SQL 쿼리가 작동합니다.

    데이터 수정을 계획하는 경우 API를 사용해야하지만 엔티티를 심하게로드 할 수 없기 때문에 가장 빠른 방법이 아닙니다. 예를 들어 고객 및 주문을보고 싶다면 둘 다 개별적으로로드 한 다음 수동으로 가입해야합니다. SQL 쿼리가 이미 데이터를 조인 할 위치입니다.

    TDS 스트림이 API & webservices에서 사용되는 SOAP 메시지보다 훨씬 효과적이라는 사실을 잊지 마십시오.

    UPDATE

    나는 일반적으로보기 및 CRM 데이터베이스와 관련하여 지적해야합니다 CRM은 사용자 지정 엔터티에 대한 테이블이나 뷰에 인덱스를 최적화하지 않습니다 (어떻게이를 수 있을까?). 따라서 목적지별로 조회하는 truckload 엔티티가 있으면 항상 해당 속성에 대한 색인을 추가해야합니다. 응용 프로그램에 따라 성능에서 큰 차이를 만들 수 있습니다.

    1

    뷰 (* base & * extensionbase) 대신 직접 테이블을 쿼리하는 것이 훨씬 빠르다는 말로 jake의 의견에 추가 할 것입니다.

    속도 위하여는 것 :

    1. 직접 테이블 쿼리
    2. 보기 쿼리
    3. filterd보기 쿼리
    4. API 호출
    +0

    테이블에 직접 조심하십시오. 뷰는 테이블로 직접 이동하지 않는 보안을 시행합니다. 또한 테이블에 대해 직접 업데이트를 수행하는 것은 좋은 생각이 아닙니다. 모든 업데이트는 API를 통해 이루어져야합니다. Sucksville에 많은 양의 데이터가 있지만 그렇게하지 않으면 예기치 않은 결과가 발생할 수 있습니다. – Jake

    +0

    테이블이나 뷰를 통해 직접 업데이트 나 삽입을 수행하지 않는 것이 좋습니다. 그러나 대규모 응용 프로그램 (수 백 사용자와 수백만 행)에서 API는 쿼리 목적으로 API를 잘라 내지 않습니다. 보안 역할을 시행해야하는 경우 API 또는 필터링 된보기를 선택해야합니다. 많은 양의 데이터를 추출 할 때 둘 다 다소 느립니다. – XVargas

    0

    직접 테이블 업데이트 :

    Jake와는 모든 업데이트가 API를 거쳐야한다는 것에 동의하지 않습니다. 정확한 진술은 API를 통해가는 것은 이며 업데이트를 수행하는 방법은입니다. 실제로 테이블을 직접 수정하는 것이 가장 합리적인 경우가 몇 가지 있습니다.

    시스템이 작동하지 않는 동안 많은 양의 데이터를 한 번 가져옵니다.

    - 많은 양의 데이터에서 특정 필드를 수정합니다.

    본인은 API의 성능이 용납 될 수없는 경우에만 직접적인 수정이 최후의 수단이어야한다는 데 동의합니다. 그러나 수천 개의 레코드에서 부울 필드를 수정하려는 경우 테이블에 대한 직접 SQL 업데이트를 수행하는 것이 좋습니다.

    내가 지금까지 상대 속도로 XVargas에 동의 상대 속도.

    필터링되지 않은 뷰 대 테이블 : 기본 및 확장 테이블을 수동으로 결합하는 번거 로움에 비할만한 성능 이점을 발견하지 못했습니다.

    필터링되지 않은보기와 필터링 된보기 : 최근 필터링 된보기를 사용하여 실행하는 데 약 15 분이 소요되는 복잡한 쿼리가 사용되었습니다. 필터링되지 않은보기로 전환 한 후 약 10 초 후에이 쿼리가 실행되었습니다. 각각의 쿼리 계획을 보면 원시 쿼리에는 8 개의 작업이 있었고 필터링 된 뷰에 대한 쿼리에는 80 개 이상의 작업이있었습니다.

    필터링되지 않은 뷰 vs API : API를 통해 쿼리를 조회하는 것과 필자는 비교 한 적이 없지만 SQL을 통해 직접 삽입하거나 API를 통해 데이터를 쓰는 데 드는 비용을 비교했습니다. API를 통해 수백만 개의 레코드를 가져 오는 데는 며칠이 걸리지 만 insert 문을 사용하는 동일한 작업에는 몇 분이 걸릴 수 있습니다. 나는 그 차이가 읽는 동안 큰 것은 아니지만 아마 여전히 클 것으로 생각합니다.

    관련 문제