Soci (Soczó Zsolt) szakmai blogja

2009.03.25.

Vigyázni a profilerrel!

Filed under: Adatbázisok,SQL Server 2005,SQL Server 2008,Szakmai élet — Soczó Zsolt @ 13:43

Az egyik folyó munkámban profilerrel szerettünk volna szétnézni egy szerveren, hogy lássuk, kik a lassú lekérdezések. Eddig ez minden cégnél zökkenőmentesen ment, mondjuk egy min. 5000-es read filter mellett szépen jött a lista. Esetünkben azonban a profiler bekapcsolása után gyakorlatilag elérhetetlenné vált az sql server, de olyannyira, hogy még be se tudtunk rá lépni, újra kellett indítani. Először azzal ideologizáltuk meg a dolgot, hogy lassú volt a kapcsolat a profilert futtató gép és az sql server között, de ugyanígy lefagyott akkor is, ha egy azonos LAN-on levő gépről futott a kliens.
Esetünkben nem egy sima terhelési minta kellett, hanem kellettek az XML Planek is, gondolom ez feküdte meg a gyomrát, ezek előállítása.
Kevésbé megterhelő módja a valódi planek kinyerésének a management view-k használata. A következő lekérdezés visszaadja a hangoláshoz számomra fontos infókat:

SELECT top 500
OBJECT_NAME(st.objectid) object_name, 

SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1,
((CASE statement_end_offset 
WHEN -1 THEN DATALENGTH(st.text)
ELSE QS.statement_end_offset END 
- QS.statement_start_offset)/2) + 1) statement_text,

qs.last_execution_time, 
qs.execution_count, 

qs.total_worker_time, 
qs.total_worker_time / qs.execution_count agv_worker_time,
qs.last_worker_time,

qs.total_logical_reads,
qs.total_logical_reads / qs.execution_count avg_logical_reads,
qs.last_logical_reads,
qp.query_plan as query_plan_text,
xp.query_plan
--into tempdb.dbo.Plans
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(sql_handle) as st
CROSS APPLY sys.dm_exec_text_query_plan(qs.plan_handle, 
qs.statement_start_offset, qs.statement_end_offset) AS qp
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) xp
order by total_worker_time desc

Az utolsó oszlop az xml plan, csak rá kell kattintani, és máris látszik grafikusan a terv. Szenzációsan kényelmes.

2009.03.18.

Supporting SQL Server 2008: The system_health session

Filed under: Adatbázisok,SQL Server 2005,SQL Server 2008,Szakmai élet — Soczó Zsolt @ 14:36

Az extended event-ökre épülő dolog, ez, amelyet problémák esetén érdemes megnézni a szokásos logok mellett:

SELECT CAST (xest.target_data AS XML)
FROM sys.dm_xe_session_targets xest 
JOIN sys.dm_xe_sessions xes ON
xes.address = xest.event_session_address 
WHERE xes.name = 'system_health';

A háttérben fut egy extended event session, ami a gázosabb helyzetekben logol. Igaz, csak korlátozott méretekben és memóriában, de lehet benne hasznos infó.
Ezekről van benne infó:
* The sql_text and session_id for any sessions that encounter an error with severity >=20
* the sql_text and session_id for any sessions that encounter a “memory” type of error such as 17803, 701, etc (we added this because not all memory errors are severity >=20)
* A record of any “non-yielding” problems (you have sometimes seen these in the ERRORLOG as Msg 17883)
* Any deadlocks that are detected
* The callstack, sql_text, and session_id for any sessions who have waited on latches (or other interesting resources) for > 15 seconds
* The callstack, sql_text, and session_id for any sessions who have waited on locks for > 30 seconds
* The callstack, sql_text, and session_id for any session that have waited for an extended period of time for “external” waits or “pre-emptive waits”.

Jó tudni még, hogy az sql log könyvtárában vannak trc fájlok is, amelyek meg a már 2005 óta létező, háttérben futó default trace nyomait rögzíti. Ebben is lehetnek értékes morzsák hibakereséshez.

Jó cikk az SQL Server 2008 Extended Eventökről

Filed under: Adatbázisok,SQL Server 2008,Szakmai élet — Soczó Zsolt @ 14:25

Advanced Troubleshooting with Extended Events
Ez működik Expressen is, és nagyon durva dolgokat lehet vele csinálni, de nem egyszerű.

2009.03.17.

SQL Server: Lock Pages In memory on 64 bit platform

Filed under: Adatbázisok,SQL Server 2005,SQL Server 2008,Szakmai élet — Soczó Zsolt @ 23:10

Yes, we do recommend to turn on Lock pages in memory so that OS doesn’t page SQL Server out. On 64 bit you only need to grant the right “Lock Pages in Memory” to the SQL account for SQL Server to utilize this feature.

Kapcsolódik még.

Ha ez a hiba előjön főleg nézzetek utána:
“A significant part of sql server process memory has been paged out. This may result in performance degradation”

De már megyek is vissza a munkához, mert igencsak beindult az élet, egyszerre 6 cég számára futnak munkáim, és most adok ajánlatot a jövő héten egy újabb, várhatóan elég nagy volumenű feladatra. Igaza van Marcellnak, válság más cégnél van, nálunk miért lenne? Ezzel nem akarom nagyképűen lebecsülni sok ember nagyon is valós gondját kölcsönproblémák és egyáltalán a megélhetés miatt, csak azt akarom megerősíteni, hogy attól, hogy a gazdasági folyamatok nem a helyükön vannak, attól még megy az élet, folyik az építkezés sok helyen. Van egy ismerősöm, aki kereskedelemből él, és mondta, hogy a ő cégére is igen nehéz idők járnak, nem tudja, nyáron is létezni fog-e még a cége.
Nehéz kikapcsolni a sok negatív hangot, ami az utóbbi hónapokban a csapból is folyik, nem tesz jót az ember motivációjának. De jön a tavaszi szél, remélem ez sok mindenben új vizet áraszt. Az amerikai tőzsde már mocorog (de még messze nincs vége a medveszezonnak), akkor talán 1 év múlva már nálunk is fog. És utána talán a magyar gazdaság is megindul.

2009.03.12.

Mikor építhetünk a sorok sorrendjére SQL Serverben?

Nappal DP tanfolyamot tartottam, éjszaka meg adatbázist optimalizálok egy ügyfelemnek, így most csak egy rövid, de érdekes cikket linkelek be.

2009.03.04.

SZDSZ : Csak abban a statisztikában hiszek, amit magam hamisítottam meg

Filed under: Élet — Soczó Zsolt @ 19:37

Imádon a google desktopot, mert időrendben cache-eli a látogatott lapokat.
Délután 16:19-kor ez volt a cache-emben:

Aztán este 19:18-kor:

Csak azt nem értem, hogy az interneten, ahol mindennek nyoma van, hogy mernek ilyet csinálni?
Tudom, majd azt mondják, hogy kiszűrték a duplikáltumokat, stb., de ettől még a címbeli állítás igaz marad. Ej, de süllyedünk el az erkölcsi szarban.

BI konferencia lement, DP tanfolyam indul

Filed under: Élet,Szakmai élet — Soczó Zsolt @ 17:35

Tegnap lezajlott az SQL Server BI konferencia, szerintem érdekes volt. Kicsit más mutattunk mint szoktunk mondjuk a techneten. Olyan dolgot tekintettünk át, amit nagyon kevesen használnak, pedig ha már megvették az SQL Servert, ott van még sok nagyon okos szolgáltatás a relációs adatbázison kívül.
Az SSIS-t és az SSRS-t még csak-csak használgatják az emberek, de az Analysis Services tipikusan az a komponens, ami már a telepítéskor se kapja meg a csekkboxát. :) Ha meg véletlenül felment, Service Manual Start, radikálisabban gondolkodóknak Disabled.
Pedig okos dolog, láttam, bemutatta Kovács Zoli. :) Én még nem értek az anal serviceshez, de már hoztam hozzá könyvet az MSHU-tól, tervben van, hogy még idén szánok rá időt. :)
Aki szeretne vele ismerkedni annak ajánlom a Books Online-ban található tutorialt, én 1 napon keresztül nyomogattam, és elég jól bevezetett az anal rejtelmeibe.

Köszönöm a résztvevőknek az érdeklődést és a kérdéseket. Volt pár kérdés bugnak ható dolgokkal kapcsolatban, ha megírjátok őket, utánuk nézek.

Ha elalszik a család elmondom Screencastban is az elhangzottakat, kiegészítve a jelentések paraméterezésével, arra már nem volt idő a konferencián.

Közben kezd egyre sűrűbbé válni a naptáram, az első két hónapi csöndesebb időszak után (kifelé, belül intenzíven fejlesztem a kereskedőprogramomat) kezd beindulni a szaktanácsadási üzlet. :)

Üröm az örömben, hogy közben egyre csúnyábbakat hallani országunk állapotáról vagy megítéléséről. :(

Powered by WordPress