查詢 SQL Job 正在執行的狀態

雖然 http://stackoverflow.com/questions/18445825/how-to-know-status-of-currently-running-jobs 提供以下的查詢

SELECT sj.name,sj.*
   , sja.*
FROM msdb.dbo.sysjobactivity AS sja
INNER JOIN msdb.dbo.sysjobs AS sj ON sja.job_id = sj.job_id
WHERE sja.start_execution_date IS NOT NULL
   AND sja.stop_execution_date IS NULL

exec   sp_help_job @job_name=’test’

但我需要知道 job 實際叫起的 dtexec 之 pid,畢竟同時有一堆 SSIS Job 在執行,無法知道哪個 job 是對應到哪個 windows 上正在 run 的 dtexec process,不知大家有何解法…用 script task 自己取得 pid 存進 log 嗎?

SQL Server 2014 SSDT 要額外下載

回應朋友的提問,SQL Server 2014 SSDT 要額外下載,目前的安裝光碟並未包含此,且有兩部分:

BI 專案:http://www.microsoft.com/zh-TW/download/details.aspx?id=36843

SQL Server database 資料庫開發專案:http://msdn.microsoft.com/en-us/data/hh297027

目前都只有 VS 2012 版本

在 SQL Server 2000 追鎖定串列

今天為追一台 SQL 2000 伺服器的效能,簡單寫了個 Stored Procedure,沒有 CTE 有些麻煩,只好靠 temp table

create proc spLock @spid int,@lev int=0
as
set @lev=@lev+1
if @spid <> 0
select *,@lev [level] into #temp from master.dbo.sysprocesses
where blocked=@spid
else
insert #temp
select s.*,@lev [level] from master.dbo.sysprocesses s
join (select * from #temp where level=@lev-1) t
on s.blocked=t.spid

if @@rowcount > 0 and @lev<32
exec spLock 0,@lev
if @lev=1
select *,0 [level] from master.dbo.sysprocesses where spid=@spid
union all
select * from #temp
order by [level]
go
exec spLock 111

似乎可以從 SQL Server 2005 直接升到 SQL Server 2014

就安裝程式的畫面似乎如此,但還沒機會試

image

image

為人謀而不忠乎?與朋友交而不信乎?傳不習乎?

最近對政治的紛擾似乎也有了興趣,唉,明知大趨勢下的小火花不足觀,但定力還是不足,政治劇硬是比鄉土劇更生動…

突然覺得自己好像懂了電力供應、土地重劃、都市更新、軍隊管理、貿易談判,但沒花過半點心力去做好這些事,乃至於從沒想通過上述任何一個問題。只可以確定的是,自己對 SQL Server 好生疏啊。

定下心來,目前答應的工作很多,應忠、信與習的不知凡幾。註記於此,提醒自己,未來這些大戲只會越來越激情,但自己的定力是否有長進?有沒有想方設法磨心磨性?

 

 

 

 

寫下自己對十年後趨勢的看法…

這是政治、階級、勞資的鬥爭,未來只會越來越重鹹。

未來是歐、亞、美三洲的經濟壁壘戰,台灣隸屬於亞洲,經濟一定依附中國,希望能成為歐陸的荷蘭。

合約簽得好壞要看自己的實力,當經濟每況愈下,參與談判的人籌碼越少,時間與趨勢不在自己這一邊時,不用預期有更好的談判結果。

在政府越來越弱化,科技越來越發達的情況下,國與國的合約意義不大。規範追不上科技的變化,導致管不了實際的金流、物流與人流。政府輸在對科技的駕馭力,導致跨國企業主導的金流、物流與人流更勝政府。

個人或團隊的能力決定金錢的自由度,但亙古不變的是,自己能定義自己存在價值的多寡決定心靈的自由度。

我為何知道我

孩子聊起與患有精神疾病的同學相處之情境,一時興起再度閱讀多年前曾讀過的 "錯把太太當帽子的人",而今只有依稀印象,這本書曾讓我毛骨悚然。重讀時,寒慄之氣再度縈繞。

若我喪失對視覺的認知,而不是視覺,看得見卻不知其圖像意義,需要其他的感官與外界互動,經由邏輯思考才能理解以往熟悉的圖像。只有點線面的抽象世界裡,臉的點線面與帽子的點線面要靠思考分析幾個圓在一個橢圓中,可能是一張臉而非一個帽子。當思考追不上動作時,就抓著太太的頭以為是帽子,而想要往自己的頭上戴。看到路邊的消防栓以為是學生,而諄諄教誨起來。

當我所有的器官都正常,但喪失了完整解讀該器官收到之訊號的能力,而我遺忘了我曾有的這個能力,但我仍記得這個能力先前的成果,我還是完整的我嗎?

當我的記憶只有數分鐘,沒有了當下的過往,記憶停留在 30 年前,我所有的功能都正常,能認知且與世界互動,當所有的人永遠都是陌生人,我還是我嗎?

當我的心靈找不到身體,要透過眼睛找到身體某部分後,才能要該部分的身體執行大腦下的命令,我還有勇氣站起來走完一生嗎?

四肢健全卻忘了如何使用,幻想不存在的肢體黏附於身體,面對正常的肢體卻恐懼其為多餘的附身而欲除之…諸此種種如真似幻,我還能努力找尋生命的樂趣嗎?

感嘆大腦的奇幻,懼怕這個奇幻中的一小部分失靈。不知腦中的溝通與協調有了窒礙,我還知道什麼是完整的我嗎?而現在的我完整嗎?我是否早已扭曲而無病識?

分析 Reporting Services 報表訂閱的執行狀況

不錯的 blog:Report launcher to run SSRS report subscriptions on demand

不過另一篇:How to easily identify a scheduled SQL Server Reporting Services report Join 條件可能要改一下

SELECT
            b.name AS JobName
            , e.name
            , e.path
            , d.description
            , a.SubscriptionID
            , laststatus
            , eventtype
            , LastRunTime
            , date_created
            , date_modified
    FROM ReportServer.dbo.ReportSchedule a JOIN msdb.dbo.sysjobs b
            ON convert(varchar(100),a.ScheduleID) = b.name
            JOIN ReportServer.dbo.ReportSchedule c
            ON b.name = c.ScheduleID
            JOIN ReportServer.dbo.Subscriptions d
            ON c.SubscriptionID = d.SubscriptionID
            JOIN ReportServer.dbo.Catalog e
            ON d.report_oid = e.itemid

SELECT
    ‘EXEC ReportServer.dbo.AddEvent @EventType="TimedSubscription", @EventData="‘
+ CAST(a.SubscriptionID AS VARCHAR(40)) + “" AS ReportCommand
            , b.name AS JobName
            , a.SubscriptionID
            , e.name
            , e.path
            , d.description
            , laststatus
            , eventtype
            , LastRunTime
            , date_created
            , date_modified
    FROM ReportServer.dbo.ReportSchedule a JOIN msdb.dbo.sysjobs b
            ON convert(varchar(100),a.ScheduleID) = b.name
            JOIN ReportServer.dbo.ReportSchedule c
            ON b.name = c.ScheduleID
            JOIN ReportServer.dbo.Subscriptions d
            ON c.SubscriptionID = d.SubscriptionID
            JOIN ReportServer.dbo.Catalog e
            ON d.report_oid = e.itemid

利用「資料庫發行精靈」將新版 SQL 資料庫降級成舊版

承修給了保哥的連結 http://blog.miniasp.com/post/2011/05/21/Using-Database-Publishing-Wizard-downgrade-SQL-Server-Database.aspx

透過 AS OLEDB Provider 要以 DNS Alias Name 連 Analysis Services

需要 DisableLoopBackCheck:https://connect.microsoft.com/SQLServer/feedback/details/432644/create-and-alias-to-a-named-instance-of-analysis-services-2005-8

SQL Server Management Data Warehouse 要壓縮

每收集一個 SQL Instance 會增加 7 G Bytes 的空間,啟動壓縮後,可將近省一半的空間

Follow

Get every new post delivered to your Inbox.

Join 25 other followers