Dit document beschrijft waarom de SQL query resultaat order door DateTime voor de Route_Call_Detail of de Termination_Call_Detail tabel tussen Microsoft SQL versie 6.5 en 7.0 verschillend is en biedt een tijdelijke oplossing in een Cisco Intelligent Contact Management (ICM) omgeving.
Cisco raadt u aan kennis te hebben van deze onderwerpen:
Cisco ICM
Microsoft SQL
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
Cisco ICM
Microsoft SQL Server versie 6.5 en 7.0
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u de potentiële impact van elke opdracht begrijpen.
Wanneer u verbetert naar Cisco ICM versie 4.6.2 of later, wordt Microsoft SQL Server versie 6.5 bijgewerkt naar versie 7. Na de upgrade voert u de SQL query uit tegen de Route_Call_Detail of de Termination_Call_Detail tabel op het ICM systeem dat SQL versie 7 uitvoert, geeft verschillende resultaten van SQL versie 6.5 terug. Zie deze SQL query:
Afbeelding 1: Microsoft SQL Server Query
Wanneer u de resultaten van het uitvoeren van dezelfde SQL query op het oude ICM systeem vergelijkt dat SQL versie 6.5 draait, is de inhoud identiek. De nieuwe resultaten zijn echter niet in de oplopende datum, de tijdvolgorde zoals de oorspronkelijke resultaten. Vóór de upgrade, gaf deze query gegevens terug in DateTime volgorde. Sinds de upgrade, worden de gegevens niet teruggegeven in DateTime volgorde, zoals hier wordt getoond.
Afbeelding 2: SQL Query-resultaten in DateTime Order
Nadat u van SQL versie 6.5 naar versie 7.0 upgrades uitvoert zijn de resultaten van bepaalde vragen die tegen de Route_Call_Detail of de Termination_Call_Detail zijn voltooid niet langer in de DateTime orde. Om de datum-resultaten te verkrijgen, moet bij bestelling een bestelling worden ingevoegd. Dit is een kwestie omdat de orde door clausule significante overhead aan de Route_Call_Detail en de Termination_Call_Detail vragen kan toevoegen, die zeer grote resultaten kunnen produceren.
De order door primaire sleutel in SQL Server versie 6.5 kwam van het oude systeem van Sybase waar Microsoft SQL voortkwam. Microsoft verscherpte conformiteit met de SQL-standaard in SQL Server versie 7.0, die geen bestelling zonder een bestelling door clausule in de SQL query garandeert. Dit is een relationele database, geen fysiek sequentieel bestand. Er is geen aangenomen sequentie in een relationele database zoals er in een fysiek sequentieel bestand is. Daarom is het noodzakelijk een order per clausule te gebruiken om een volgorde in het resultaat vast te stellen.
Opmerking: dit is geen Cisco-probleem. Het is een Microsoft SQL Server-standaardprobleem.