Doen bestuur van 'n SQL Server 2005 databasis in verenigbaarheid vlak 80 het 'n negatiewe impak op prestasie?

StackOverflow https://stackoverflow.com/questions/7237

  •  08-06-2019
  •  | 
  •  

Vra

Ons sagteware moet in staat wees om uit te voer op SQL Server 2000 en 2005. Om ontwikkeling te vereenvoudig, ons loop ons SQL Server 2005 databasis in verenigbaarheid vlak 80. Maar databasis prestasie lyk stadiger op SQL 2005 as op SQL 2000 in 'n paar gevalle (ons het nog nie bevestig hierdie behulp van maatstawwe). Sou die opgradering van die verenigbaarheid vlak tot 90 verbeter produktiwiteit op die SQL 2005 bedieners?

Was dit nuttig?

Oplossing

Ek dink ek het iewers gelees dat die SQL Server 2005 databasis enjin sowat 30% vinniger as die SQL Server 2000 enjin behoort te wees. Dit kan wees dat jy jou databasis in compatibiliteit af 90 hardloop om hierdie voordele te kry.

Maar ek het gestruikel oor twee scenario's, waar prestasie dramaties kan daal wanneer die gebruik van MSSQL 2005 in vergelyking met MSSQL 2000:

  1. Parameter Ruikend: By die gebruik van 'n gestoor proses, sal SQL Server presies een uitvoering plan bereken op die oomblik, moet jy eers die prosedure noem. Die uitvoering plan is afhanklik van die parameter waardes gegewe vir daardie oproep. In ons geval, prosedures wat gewoonlik het sowat 10 sekondes hardloop vir ure onder MSSQL 2005 Neem 'n blik hier en hier .

  2. By die gebruik van versprei navrae, MSSQL 2005 optree verskillende aangaande aannames oor die volgorde op die afgeleë bediener. Verstek gedrag is, dat die bediener afskrifte van die hele afgeleë tafels betrokke in 'n soektog na die plaaslike tempdb en dan voer die sluit plaaslik. Tydelike oplossing is om OPENQUERY, waar jy kan beheer presies wat resultset oorgedra vanaf die afgeleë bediener te gebruik.

Ander wenke

nadat jy die DBs verskuif na 2005 het jy

werk die statistieke met volle scan? herbou die indekse?

eerste probeer dit en kyk dan spelpeil te herwin

Ook 'n FYI, as jy verenigbaarheid vlak 90 dan 'n paar dinge word nie ondersteun nie hardloop nie soos ou styl buitenste sluit (*= and =*)

Is jy met behulp van subselects in jou navrae?

Uit my ervaring, 'n uitgesoekte verklaring met subselects wat fyn op SQL Server 2000 loop kan kruip op SQL Server 2005 (dit kan wees soos 10x stadiger!).

Maak 'n eksperiment -. Re-skryf een navraag na die subselects skakel en sien hoe sy prestasie veranderinge

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top