Questo documento descrive il motivo per cui l'ordine dei risultati della query SQL per DateTime per la tabella Route_Call_Detail o Termination_Call_Detail tra Microsoft SQL versione 6.5 e 7.0 è diverso e fornisce una soluzione alternativa in un ambiente Cisco Intelligent Contact Management (ICM).
Cisco raccomanda la conoscenza dei seguenti argomenti:
Cisco ICM
Microsoft SQL
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
Cisco ICM
Microsoft SQL Server versione 6.5 e 7.0
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Quando si esegue l'aggiornamento a Cisco ICM versione 4.6.2 o successive, Microsoft SQL Server versione 6.5 viene aggiornato alla versione 7. Dopo l'aggiornamento, l'esecuzione della query SQL sulla tabella Route_Call_Detail o Termination_Call_Detail sul sistema ICM con SQL versione 7 restituisce risultati diversi da SQL versione 6.5. Vedere la query SQL seguente:
Figura 1: Query di Microsoft SQL Server
Quando si confrontano i risultati dell'esecuzione della stessa query SQL sul vecchio sistema ICM che esegue SQL versione 6.5, il contenuto è identico. Tuttavia, i nuovi risultati non sono nell'ordine DateTime crescente come i risultati originali. Prima dell'aggiornamento, la query ha restituito i dati in ordine DateTime. Dall'aggiornamento, i dati non vengono restituiti in ordine DateTime, come illustrato qui.
Figura 2: Risultati query SQL in ordine data/ora
Dopo l'aggiornamento da SQL versione 6.5 alla versione 7.0, i risultati delle query di selezione completate in base a Route_Call_Detail o Termination_Call_Detail non sono più nell'ordine DateTime. Per ottenere i risultati DateTime, è necessario inserire una clausola order by. Si tratta di un problema in quanto la clausola order by può aggiungere un sovraccarico significativo alle query Route_Call_Detail e Termination_Call_Detail, che possono produrre set di risultati molto grandi.
L'ordine in base alla chiave primaria in SQL Server versione 6.5 proviene dal vecchio sistema Sybase in cui è stato creato Microsoft SQL. Microsoft ha reso più rigida la conformità allo standard SQL di SQL Server versione 7.0, che non garantisce un ordinamento senza una clausola order by nella query SQL. Si tratta di un database relazionale e non di un file fisico sequenziale. In un database relazionale non è presente alcuna sequenza presunta come in un file fisico sequenziale. È pertanto necessario utilizzare una clausola order by per stabilire una sequenza nel risultato.
Nota: non è un problema di Cisco. Si tratta di un problema standard di Microsoft SQL Server.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
25-Oct-2006 |
Versione iniziale |