W tym miejscu będę aktualizował zbiór artykułów dostępnych w necie, których znajomość pomogła mi znacznie w zrozumieniu/zapoznaniu się z wiedzą dotyczącą SQL Server. GENERAL Biblioteka wielu przydatnych linków do stron, blogów, whitepapers itp. [akt. #2 (12.10.2017)] Jeszcze jedna biblioteka, tym razem utrzymywana na githubie, pełna narzędzi, skryptów, kodu i słodyczy!Czytaj dalej / Read more
Autor: Michał Pawlikowski
SPID query plan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
SELECT EQP.query_plan, ER.session_id, ER.request_id, ER.start_time, ER.status, ER.command, ER.sql_handle, ER.statement_start_offset, ER.statement_end_offset, ER.plan_handle, ER.database_id, ER.user_id, ER.connection_id, ER.blocking_session_id, ER.wait_type, ER.wait_time, ER.last_wait_type, ER.wait_resource, ER.open_transaction_count, ER.open_resultset_count, ER.transaction_id, ER.context_info, ER.percent_complete, ER.estimated_completion_time, ER.cpu_time, ER.total_elapsed_time, ER.scheduler_id, ER.task_address, ER.reads, ER.writes, ER.logical_reads, ER.text_size, ER.language, ER.date_format, ER.date_first, ER.quoted_identifier, ER.arithabort, ER.ansi_null_dflt_on, ER.ansi_defaults, ER.ansi_warnings, ER.ansi_padding, ER.ansi_nulls, ER.concat_null_yields_null, ER.transaction_isolation_level, ER.lock_timeout, ER.deadlock_priority, ER.row_count, ER.prev_error, ER.nest_level, ER.granted_query_memory, ER.executing_managed_code, ER.group_id, ER.query_hash, ER.query_plan_hash, ER.statement_sql_handle, ER.statement_context_id, ER.dop, ER.parallel_worker_count, ER.external_script_request_id, EQP.dbid, EQP.objectid, EQP.number, EQP.encrypted FROM sys.dm_exec_requests AS ER CROSS APPLY sys.dm_exec_query_plan(ER.plan_handle) AS EQP WHERE ER.session_id = <SPID>; |
Ablacja serca RF w Instytucie Kardiologii w Aninie – oczami pacjenta z WPW
Post ten powstał z myślą o wszystkich, którzy chcieliby się dowiedzieć jak w praktyce (moimi oczami) wyglądał zabieg ablacji w Klinice Zaburzeń Rytmu Serca znajdującej się w Instytucie Kardiologii im. Prymasa Tysiąclecia Kardynała Stefana Wyszyńskiego w Warszawie przy ul. Alpejskiej 42. Przeszedłem tam dwa takie zabiegi z powodu wrodzonej wadyCzytaj dalej / Read more
Historia jobów (job history)
Źródło: https://www.sqlmatters.com/Articles/Checking%20the%20status%20of%20SQL%20Server%20Agent%20jobs.aspx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
USE msdb; SELECT SJ.name AS [Job Name], CONVERT( VARCHAR, DATEADD( S, (SJH.run_time / 10000) * 60 * 60 /* hours */ + ((SJH.run_time - (SJH.run_time / 10000) * 10000) / 100) * 60 /* mins */ + (SJH.run_time - (SJH.run_time / 100) * 100), /* secs */ CONVERT(DATETIME, RTRIM(SJH.run_date), 113) ), 20 ) AS [Time Run], CASE WHEN SJ.enabled = 1 THEN 'Enabled' ELSE 'Disabled' END [Job Status], CASE WHEN SJH.run_status = 0 THEN 'Failed' WHEN SJH.run_status = 1 THEN 'Succeeded' WHEN SJH.run_status = 2 THEN 'Retry' WHEN SJH.run_status = 3 THEN 'Cancelled' ELSE 'Unknown' END [Job Outcome] FROM dbo.sysjobhistory SJH JOIN dbo.sysjobs SJ ON SJH.job_id = SJ.job_id WHERE SJH.step_id = 0 AND DATEADD( S, (SJH.run_time / 10000) * 60 * 60 /* hours */ + ((SJH.run_time - (SJH.run_time / 10000) * 10000) / 100) * 60 /* mins */ + (SJH.run_time - (SJH.run_time / 100) * 100), /* secs */ CONVERT(DATETIME, RTRIM(SJH.run_date), 113) ) >= DATEADD(d, -1, GETDATE()) ORDER BY SJ.name, SJH.run_date, SJH.run_time; |
Lekko zmodyfikowana:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
USE msdb; SELECT TOP 5 SJ.name AS [Job Name], CONVERT(VARCHAR, DATEADD( S, (SJH.run_time / 10000) * 60 * 60 /* hours */ + ((SJH.run_time - (SJH.run_time / 10000) * 10000) / 100) * 60 /* mins */ + (SJH.run_time - (SJH.run_time / 100) * 100), /* secs */ CONVERT(DATETIME, RTRIM(SJH.run_date), 113) ), 20 ) AS [Time Run], CASE WHEN SJ.enabled = 1 THEN 'Enabled' ELSE 'Disabled' END [Job Status], CASE WHEN SJH.run_status = 0 THEN 'Failed' WHEN SJH.run_status = 1 THEN 'Succeeded' WHEN SJH.run_status = 2 THEN 'Retry' WHEN SJH.run_status = 3 THEN 'Cancelled' ELSE 'Unknown' END [Job Outcome], Duration = STUFF(STUFF(RIGHT('000000' + CAST(SJH.run_duration AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':') FROM dbo.sysjobhistory SJH JOIN dbo.sysjobs SJ ON SJH.job_id = SJ.job_id WHERE SJH.step_id = 0 AND DATEADD( S, (SJH.run_time / 10000) * 60 * 60 /* hours */ + ((SJH.run_time - (SJH.run_time / 10000) * 10000) / 100) * 60 /* mins */ + (SJH.run_time - (SJH.run_time / 100) * 100), /* secs */ CONVERT(DATETIME, RTRIM(SJH.run_date), 113) ) >= DATEADD(d, -1, GETDATE()) AND SJ.name = 'job_name' ORDER BY SJ.name, [Time Run] DESC; |
SSAS info o bazach (wielkość bazy, partycji, statusu procesowania etc.)
Źródło: http://www.ssas-info.com/analysis-services-scripts/1197-powershell-script-to-list-info-about-ssas-databases lekko zmodyfikowany
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
param($ServerName = "localhost", $dbname = "db_name") ## Add the AMO namespace $loadInfo = [Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices") $server = New-Object Microsoft.AnalysisServices.Server $server.connect($ServerName) if ($server.name -eq $null) { Write-Output ("Server '{0}' not found" -f $ServerName) break } foreach ($d in $server.Databases ) { if ($d.Name -ne $dbname) { continue; } Write-Output ( "Database: {0}; Status: {1}; Size: {2}MB" -f $d.Name, $d.State, ($d.EstimatedSize / 1024 / 1024).ToString("#,##0") ) foreach ($cube in $d.Cubes) { Write-Output ( " Cube: {0}" -f $Cube.Name ) foreach ($mg in $cube.MeasureGroups) { Write-Output ( " MG: {0}; Status: {1}; Size: {2}MB" -f $mg.Name.PadRight(25), $mg.State, ($mg.EstimatedSize / 1024 / 1024).tostring("#,##0")) foreach ($part in $mg.Partitions) { Write-Output ( " Partition: {0}; Status: {1}; Size: {2}MB" -f $part.Name.PadRight(35), $part.State, ($part.EstimatedSize / 1024 / 1024).ToString("#,##0") ) } # Partition } # Measure group foreach ($dim in $d.Dimensions) { Write-Output ( "Dimension: {0}" -f $dim.Name) } # Dimensions } # Cube } # Databases |
Szybkie sprawdzenie różnic w commitach pomiędzy dwoma branchami w GIT
Źródło: https://stuntcoders.com/snippets/show-commit-differences-between-git-branches/
1 |
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative master..develop |
Fizys ANALAJZIS – spolonizowane narzecze, idiolekt czy (nie)wymowna językowa niedokładność?
Szczerze? Naprawdę długo zastanawiałem się czy poruszyć publicznie ten temat… Wszak w praktyce nie ma on szczególnego znaczenia. Ba! Wyobrażałem kiedyś sobie, że w oczach niektórych jest tylko bezsensowną zaczepką, produktem pychy i nadmiernego perfekcjonizmu. Wielokrotnie odpuszczałem więc zwracania uwagi, nie miało to większego sensu. Przecież nie mogę mieć powodówCzytaj dalej / Read more
SELECT TOP 1 music FROM my_head ORDER BY composing_date desc
Nierzadko ludzie dziwią się, że mogę komponować i grać na klawiszach nie mając żadnego wykształcenia muzycznego, żadnego nauczyciela czy żadnej wiedzy teoretycznej. Nie znam nawet nut… Wszystkiego nauczyłem się sam. Jakoś to po prostu działa, że wystarczył mi zawsze słuch, pamięć i górka emocji do przelania. I choć dlaCzytaj dalej / Read more
Polish my English – wersja angielska bloga
Praca w Azure, szczególnie z usługami, które jeszcze „dojrzewają”, przyczyniły się do powstania czterech postów po angielsku. I to pewnie nie koniec… Nie oznacza to, że rezygnuję całkowicie z polskich artykułów. Niemniej jednak, co pewnie nikogo nie zaskoczy, niezmiernie wkurwiające jest szukanie informacji w internecie na powyższe tematy. Skoro jaCzytaj dalej / Read more
Management Studio – Tips and Tricks
Mój mały cel wreszcie zrealizowany 🙂 Wszystkie sztuczki i kruczki jakie znam w SSMS. Wyłożone w mowie i piśmie :> Zapraszam do przejrzenia materiałów i/lub obejrzenia prelekcji! Dokument PDF z prezentacją Użyte skrypty Link do prelekcji: https://youtu.be/iuEpsbxLm04