이 문서에서는 Route_Call_Detail에 대한 DateTime별 SQL 쿼리 결과 순서와 Microsoft SQL 버전 6.5와 7.0 간의 Termination_Call_Detail 테이블이 다른 이유를 설명하고 Cisco ICM(Intelligent Contact Management) 환경에서 해결 방법을 제공합니다.
Cisco에서는 다음 주제에 대해 알고 있는 것이 좋습니다.
Cisco ICM
Microsoft SQL
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
Cisco ICM
Microsoft SQL Server 버전 6.5 및 7.0
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
Cisco ICM 버전 4.6.2 이상으로 업그레이드하면 Microsoft SQL Server 버전 6.5가 버전 7로 업그레이드됩니다. 업그레이드 후 SQL 버전 7을 실행하는 ICM 시스템에서 Route_Call_Detail 또는 Termination_Call_Detail 테이블에 대해 SQL 쿼리를 실행하면 SQL 버전 6.5의 다른 결과가 반환됩니다. 이 SQL 쿼리:
그림 1:Microsoft SQL Server 쿼리
SQL 버전 6.5를 실행하는 이전 ICM 시스템에서 동일한 SQL 쿼리를 실행한 결과를 비교할 때 내용이 동일합니다.그러나 새 결과는 원래 결과와 같은 오름차순 DateTime 순서가 아닙니다.업그레이드 전에 이 쿼리는 DateTime 순서로 데이터를 반환했습니다.업그레이드 이후 데이터는 여기와 같이 DateTime 순서대로 반환되지 않습니다.
그림 2:DateTime 주문의 SQL 쿼리 결과
SQL 버전 6.5에서 버전 7.0으로 업그레이드한 후 Route_Call_Detail 또는 Termination_Call_Detail에 대해 완료된 선택 쿼리 결과가 DateTime 순서에 더 이상 없습니다.DateTime 결과를 얻으려면 by 절을 삽입해야 합니다.이 문제는 order by 절이 Route_Call_Detail 및 Termination_Call_Detail 쿼리에 상당한 오버헤드를 추가할 수 있기 때문에 발생합니다. 이 쿼리는 매우 큰 결과 집합을 생성할 수 있습니다.
SQL Server 버전 6.5의 기본 키별 순서는 Microsoft SQL이 시작된 이전 Sybase 시스템에서 가져온 것입니다.Microsoft는 SQL Server 버전 7.0의 SQL 표준 준수를 강화했습니다. 이 경우 SQL 쿼리의 order by 절 없이 주문을 보장하지 않습니다.물리적 순차적 파일이 아닌 관계형 데이터베이스입니다.물리적 순차 파일이 있는 것처럼 관계형 데이터베이스에는 가정된 시퀀스가 없습니다.따라서 결과에서 시퀀스를 설정하려면 order by 절을 사용해야 합니다.
참고: 이것은 Cisco 문제가 아닙니다.Microsoft SQL Server 표준 문제입니다.