Tehnoloogia » Arendus ja andmetehnoloogiad » SQL Server 2005 kohati väga aeglane


 
SQL Server 2005 kohati väga aeglane
ikaruikaru
Posted: 06. nov 2009, 02:17 Vasta  |  Tsiteeri  

Tekkis huvitav probleem SQL Server 2005ga: mingi aja tagant läheb hullu moodi aeglaseks.

Ja aeglane on ta kõigis asjades: kui avada 3 realine ja 5 veeruline tabel Managent Studios võib minna 20sekundit. Kui management studios teha refresh tabelite leotelule võtab aega jne. St. probleem ei ole selles, et päring võtab mõne millisekundi rohkem, vaid kõik toimingud on justkui millegi taga kinni.
Samas serveris on ka mõned SQL 2000 instanced, mis toimivad kõik ilusti.
Huvitav veel see, et mõne aja pärast, ilma ühegi nähtava põhjuseta, on kõik jälle korras: server töötab normaalse tempoga. Mõne päeva tagant avaldub häda aga jälle.
Windowsi uuendustega (the usual suspect :-) ei ole probleem ilmselt seotud: nende automaatne installimine on kinni keeratud.
Samal teemal goodeldades leiab artikleid, kus räägitakse tavaliselt indeksite ja statistika oprimiseerimisest jms.

On keegi millegi sarnasega kokku puutunud?

GunnarGunnar
Posted: 06. nov 2009, 04:21 Vasta  |  Tsiteeri  

Mitte, et ma nüüd MSSQL-i guru oleksin, aga küsin, et kas need hetked, millal probleem avaldub on ühtlase perioodi tagant või juhtub see suvalistel hetkedel?

ikaruikaru
Posted: 06. nov 2009, 10:55 Vasta  |  Tsiteeri  

Ei ole siiani mingit seaduspärasust avastanud. Ei aeglaseks minemisel ega ka imelisel tervenemisel.

melborpmelborp
Posted: 07. nov 2009, 09:38 Vasta  |  Tsiteeri  

Ahhoi,

Pane oma SQL 2005 -e baasi külge niisugune vidin nagu - SQL Performance Dashboard (http://melborp.net/post/2008/11/21/Tip-SQL-Server-2005-Performance-Dashboard.aspx). Saad parema info kokku mis SQL serveriga ja selle baasiga toimub.

Oma töös olen päris palju SQL -i ja andmebaasi performanci analüüsi kui tuunimisega tegelenud. Su kirjeldus väga palju ei aita.

Teine vahend, millega peaksid serveri kui SQL serveri ja andmebaasi jõudlust jälgima on performance monitor. Jälgi SQL -i kui ka süsteemi performance countereid - ketas, protsessor, võrgu ressursid, mälu + sql -i performance counterid andmebaasimootori kui andmebaasi osas. Jälgi kindlasti erinevaid locke, latche. SQL 2005 Dashboard summeerib hästi sulle vajalikku infot.

Su kirjeldus viitab nagu SQL -il saab ressurss otsa - mälu, ketas, protsessor - võrk vähem tõenäoliselt. Alati on mõistlik ka oma baas regulaarselt defragmenteerida. 

Miski asi peab seda ressurssi massiivselt kasutama sel hetkel. Võid oma logimisi või siis dashboardi tulemusi jagada, saan aidata analüüsida.

Võid seda infot ka siia postitada ja saame aidata analüüsida.

imrepyhvelimrepyhvel
Posted: 10. nov 2009, 11:41 Vasta  |  Tsiteeri  

Täpsem monitoorimine on alati abiks, kuid ..

3 rea ja 5 veeruga tabel on piisvalt olematu suurusega. Kui 20sekundiks tõmbab nii väikese tabeli poole pöördumine hinge täiesti kinni, siis ketta-cpu-mälu küll ei kahtlustaks, sest väikesemahuline sõltumatu tegevus peaks peaaegu alati nö "kõrvale mahtuma". 20 seki pausi tähendab pigem ootamist mingi diskreetse ressursi taga..

Tõenäoline põhjus võiks olla:
a) locks - mingi transaktsioon jookseb taustal, mis paneb tabeli lukku ?  Kuni lukk ei vabane, seni ka päring ootab tegevusetult. Seisaku ajal peaks saama management studio'st ülevalolevaid lukke jälgida.

b) connection-limit. Ma ei tea, kas serveri poolel on ka mingi ühenduste limiit, kuid .net connectionpool on täiesti ilmselt limiteeritud ühenduste arvuga :) Kas on võimalik, et mõni klient tekitab suure arvu ühendusi või ei vabasta neid korralikult ?

Ehk on abi..

SarviktaatSarviktaat
Posted: 11. nov 2009, 12:28 Vasta  |  Tsiteeri  

kirjeldatud sümptoomide järgi oletan, et miski jama on selle management studioga või tema häälestusega.

igaks juhuks proovi

mine käsureale (CMD)
SQLCMD /E /Sserverinimi
või
SQLCMD /Sserverinimi /Ulogininimi /Pparool

ja proovi nüüd samu päringuid teha

vaata, kas on ka aeglane?

Henn

ikaruikaru
Posted: 11. nov 2009, 09:48 Vasta  |  Tsiteeri  

Tänud Melborp, Imre ja Henn!

Melborpi viidatud tööriistad on tõesti ägedad ja soovitan kõigil, kellel SQL2005 adminimise ja performancega tegemist, neid katsetada. Ma ise midagi kahtlast raportites ei märganud.
Siiani on serverid jälle normaalselt toiminud. Üritan järgmine kord, kui häda käes, raportid genereerida ja siis siia postitada.

Ma ise pean tõenäoliseks häda põhjuseks Imre viidatud locki või midagi sarnast. Olen üritanud ka häda ilmnemisel monitooringu all leida, mis protsess punniks ees on, aga seni edutult.

Connection limit on vähem tõenäoline, sest probleem tekib ka võrgus, kus on korraga max 7-8 kasutajat andmebaasi küljes.

Töö serveriga on aeglane nii management studio kui ka klientprogrammidega. Sama management studioga külge võetud SQL2000 instance toimib aga normaalselt.

Indrek

 

Muudetud: 14:02 | 11.11.2009 | Gunnar
melborpmelborp
Posted: 16. nov 2009, 07:43 Vasta  |  Tsiteeri  

Hei,

Locke näitab see raporteerimise vahend.

Kas sa kasutad mitme protsessori/core -ga masinat ja mis konfiguratsioon on sul SQL -s? Palun anna meile advanced seaded, allpool on script selleks:

EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure
GO
EXEC sp_configure 'show advanced options', 0
GO

See raporteerimise vahend näitab ka protsentuaalselt üle aja lockide/latchide informatsiooni, mida võid jagada.

 

 

 

ikaruikaru
Posted: 25. nov 2009, 11:49 Vasta  |  Tsiteeri  

Hei,

Sain probleemist jagu. Aitas selline käsk nagu SET AUTO_CLOSE OFF.
Mingil põhjusel oli see seadistus ON. Peale iga päringut pani millegi pärast kogu andmebaasi kinni.

When AUTO_CLOSE is set ON, this option can cause performance degradation on frequently accessed databases because of the increased overhead of opening and closing the database after each connection.
http://technet.microsoft.com/en-us/library/bb402929.aspx

Tänud kõigile vastajatele!

Indrek

melborpmelborp
Posted: 27. nov 2009, 01:38 Vasta  |  Tsiteeri  

Huvitav info. Tänud jagamast. Pole varem sellest kuulnud, nüüd paigutan kõrva taha.

 

Taavi

imrepyhvelimrepyhvel
Posted: 27. nov 2009, 11:38 Vasta  |  Tsiteeri  

Huvitav on ka see, millistes stsenaariumites AUTO_CLOSE funktsionaalsusest kasu võiks olla.. Mingid embedded seadmed, kus mälu/akuga kitsas ?

ikaruikaru
Posted: 30. nov 2009, 03:09 Vasta  |  Tsiteeri  

Kasu võiks AUTO_CLOSEst olla näiteks data warehouse kokku panemisel. Näiteks: korra öö jooksul sikutab erinevatest süsteemidest ja serveritest andmed SQL serverisse kokku, teeb miskid teisendused ja seejärel imetakse andmed OLAP kuubikutesse. Andmelao kasutajad pöörduvad agregeeritud kuubikute poole ja vaheandmebaasi on vaja ainult andmete laadimise hetkeks. Need vaheandmebaasid võivad olla vabalt sadu megabaite või suuremad ja nende sulgemine võiks täitsa mõttekas olla.

ikaruikaru
Posted: 10. juuni 2010, 01:07 Vasta  |  Tsiteeri  

Sattusin korra veel selle probleemi otsa. Panen kirja: ehk on kellelgi abi.
Sama AUTO CLOSE kimbutas ka ühte SharePointi saiti. Mingil põhjusel olid Search Server Expressi andmebaasid saanud külge auto close=true.
Seetõttu oli sharepoint ja kogu server kohutavalt aeglane. Käisin kõik SQL server instanced jäbi ja leidsingi mõned andmebaasid millel Auto Close peal oli.

Peale Falseks märkimist hakkasid server ja SharePoint normaalse jõudlusega tööle.