Este documento descreve por que a ordem do resultado da consulta SQL por DateTime para a tabela Route_Call_Detail ou Termination_Call_Detail entre o Microsoft SQL versão 6.5 e 7.0 é diferente e fornece uma solução em um ambiente Cisco Intelligent Contact Management (ICM).
A Cisco recomenda que você conheça estes tópicos:
ICM Cisco
SQL da Microsoft
As informações neste documento são baseadas nestas versões de software e hardware:
ICM Cisco
Microsoft SQL Server versão 6.5 e 7.0
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.
Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.
Quando você atualiza para o Cisco ICM versão 4.6.2 ou posterior, o Microsoft SQL Server versão 6.5 é atualizado para a versão 7. Após a atualização, a execução da consulta SQL com base na tabela Route_Call_Detail ou na tabela Termination_Call_Detail no sistema ICM que executa o SQL versão 7 retorna resultados diferentes do SQL versão 6.5. Consulte esta consulta SQL:
Figura 1: Consulta do Microsoft SQL Server
Quando você compara os resultados da execução da mesma consulta SQL no antigo sistema ICM que executa o SQL versão 6.5, o conteúdo é idêntico. No entanto, os novos resultados não estão na ordem crescente de DateTime como os resultados originais. Antes da atualização, esta consulta retornou dados na ordem DateTime. Desde a atualização, os dados não são retornados na ordem DateTime, como mostrado aqui.
Figura 2: Resultados da Consulta SQL em Ordem Data/Hora
Após o upgrade do SQL versão 6.5 para a versão 7.0, os resultados das consultas de seleção concluídas em relação a Route_Call_Detail ou Termination_Call_Detail não estarão mais na ordem DateTime. Uma cláusula order by deve ser inserida para obter os resultados de DateTime. Isso é um problema porque a cláusula order by pode adicionar uma sobrecarga significativa às consultas Route_Call_Detail e Termination_Call_Detail, o que pode produzir conjuntos de resultados muito grandes.
A ordem por chave primária no SQL Server versão 6.5 veio do antigo sistema Sybase onde o Microsoft SQL se originou. A Microsoft reforçou a conformidade com o padrão SQL no SQL Server versão 7.0, que não garante uma ordem sem uma cláusula order by na consulta SQL. Este é um banco de dados relacional e não um arquivo sequencial físico. Não há uma sequência assumida em um banco de dados relacional como há em um arquivo sequencial físico. Portanto, é necessário usar uma cláusula order by para estabelecer uma sequência no resultado.
Observação: esse não é um problema da Cisco. É um problema padrão do Microsoft SQL Server.
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
07-Jun-2004 |
Versão inicial |