Analysis Services 2008 újdonságok - Megbízható gyilok
Néhány hete írtam egy cikket az Analysis Services 2008 egyik újdonságáról, az adatmenedzsment nézetekről, és most mutatok egy példát a gyakorlati hasznukról is.
Tegyük fel, hogy valaki ír egy bonyolult MDX lekérdezést, és elkezdi a szerveren futtatni.
Fut... Fut... Fut... még mindig fut ... Tűréshatár ... még mindig fut...
Ki kéne nyírni! De hogyan?
Kérdezze le a $system.discover_sessions adatmenedzsment nézetet, amiből megállapíthatja, hogy melyik lekérdezések futnak éppen:
SELECT
session_id
, session_spid
, session_user_name
, session_last_command
, session_start_time
, session_cpu_time_ms
, session_reads
, session_writes
, session_status
, session_current_database
, session_used_memory
, session_properties
, session_start_time
, session_elapsed_time_ms
, session_last_command_start_time
, session_last_command_end_time
FROM $system.discover_sessions
where session_status = 1
A fenti lekérdezés visszaadja az aktuálisan futó lekérdezéseket. Másolja ki annak a lekérdezésnek a SPID-jét amelyiket ki akarja nyírni, és másolja be az alábbi XMLA utasításba, és hajrá
<Cancel xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <SPID>Írja ide a kinyírandó lekérdezés SPID-jét </SPID> </Cancel>
Így kinyírhatja azt a lekérdezés, amelyiket csak akarja.
Megj.: A Cancel XMLA utasítás már létezett a 2005-ös verzióban is, csak a szerver nem tudta mindig abban a pillanatban megszakítani a lekérdezést, amikor kiadtuk a Cancel utasítást. Ezt most javították, és ha hitetünk a fejlesztőknek, akkor az XMLA Cancel sokkal megbízhatóbb lett, mint a korábbi verziókban volt.
Kapcsolódó anyagok:
Kővári Attila - BI projekt
Új hozzászólás