문제

DeVexpress에 인덱스를 추가하고 있습니다 tdxmemdataset 성능을 향상시키기 위해. 그만큼 tdxmemindex 가지다 정렬 여기에는 옵션이 포함됩니다 Socaseinsensive. 내 데이터는 일반적으로 안내 문자열이므로 사례에 민감하지 않습니다. 모든 데이터를 동일한 경우 또는 Socaseinsensive 플래그와 사용 locaseinsensive 찾기 위해 호출하는 플래그는 사소한 성능 페널티 만 있습니다 (색인을 사용해야 할 때마다 문자열의 경우를 변환하는 것과 거의 같습니다).

이 시점에서 나는 Caseinentive를 떠나 케이스를 변환하고 있습니다.

도움이 되었습니까?

해결책

IMHO, 가장 좋은 것은 사후에 데이터 품질을 보장하는 것입니다. 추론 :

  1. 당신은 (보통) 데이터의 본질을 알고 있습니다. 예를 들어. 대신 대신 대체소를 사용할 수 있습니다 (Guid가 모두 ASCII 범위에 있음을 알면) 많이 tdxmemdataset과 같은 일반적인 구성 요소가 사용해야하는 느린 ansiuppercase.

  2. 데이터를 한 번만 입력합니다. 검색/정렬/필터링은 TDXMemdataset의 내부 Upercassing 엔진을 암시하는 모든 것을 암시합니다. 반복적 인 조치입니다. 또한, 실현되면이 엔진을 트리거하는 다른 체인 액션이 있습니다. (예 : 그리드 모드를 갖는 기본적으로 정렬되는 tcxgrid : = true (DeVex. 구성 요소를 사용한다고 가정하고)는 정렬 메시지를 기본 데이터 세트로 전달하는 브로커처럼 작용하는 클래스가 있습니다.

  3. 일반적으로 데이터 입력은 한 단계로 수행됩니다. 주목할만한 유일한 예외는 Data Aquisition Applications입니다. 그러나 사용자의 유용성 문화 이상의 경우 두 경우 모두 방법 당신이 놀 수있는 더 큰 응답 시간. (IOW는 0.005ms의 레코드 게시물에 대문자 호출을 추가 할 수 있습니까?) Otoh, 사용자는 매우 까다 롭습니다 데이터의 속도로 Retreival 작업 (검색, 정렬, 필터링 등). 데이터를 최대한 빨리 유지하십시오.

  4. 데이터베이스에 데이터를 노출시키기 위해 데이터를 준비하면 작성할 때 처리 오류의 위험이 줄어 듭니다 (만약에 다른 모듈을 쓸 것입니다 (당신은 당신이 쓸 모든 언어로 모든 모듈의 데이터를 ansiuppercase해야한다는 것을 기억해야합니다). 또한 여기에서 고전적인 예는 다른 외부 도구를 사용하여 데이터에 액세스 할 때 (Ex. DB 관리자의 경우 데이터를 통해 SQL SELCT를 실행)입니다.

HTH.

다른 팁

어쩌면 DeVexpress 포럼 (또는 지원 이메일에 액세스 할 경우)은 해당 성과 질문에 대한 권위있는 답변을 찾는 더 좋은 곳이 될 것입니다.

어쨌든, 데이터가 원하는 형식에 데이터를 보장하는 것이 좋습니다. 따라서, 그 구체적으로, 안내서가 상부 (또는 더 낮은 맛의 문제) 케이스로 작성되었는지 확인하십시오. SQL Server 또는 Guid 데이터 유형이있는 다른 데이터베이스 서버 인 경우 선택이 작업을 수행하십시오. 적용 가능하고 가능합니다, 심지어 종류.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top