本文檔說明了Route_Call_Detail或Microsoft SQL 6.5版和7.0版之間的Termination_Call_Detail表的SQL查詢結果順序(按DateTime)不同的原因,並提供了思科智慧聯絡人管理(ICM)環境中的解決方法。
思科建議您瞭解以下主題:
Cisco ICM
Microsoft SQL
本文中的資訊係根據以下軟體和硬體版本:
Cisco ICM
Microsoft SQL Server 6.5和7.0版
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
升級到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順序返回,如下所示。
圖2:按日期時間順序排列的SQL查詢結果
從SQL 6.5版升級到7.0版後,根據Route_Call_Detail或Termination_Call_Detail完成的選擇查詢的結果不再以DateTime順序顯示。必須插入order by子句才能獲得DateTime結果。這是一個問題,因為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子句在結果中建立序列。
註:這不是思科的問題。這是Microsoft SQL Server標準問題。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
25-Oct-2006 |
初始版本 |