前言: 話說前陣子爸爸家陽台不斷出現米奇老鼠,立刻清理陽台所有東西,然後又跟市政部門反映問題,可是情況還沒有好轉,米老鼠來完一隻又一隻,我爸陽台在老鼠界應該是網紅打卡聖地(誤),要不然就是米奇老鼠版米奇林三星餐廳(?) 雖然我們抓到了三隻,到上兩個禮拜為止還有至少一隻一直抓不到,每天淩晨還會來吃事後煙留下老鼠屎,真_北。 這隻老鼠對傳統攻擊有抗性,有IT9朋友前陣子用Raspberry pi自製了一台electric mouse trap ,用pi的超聲波雷達放在鞋盒裡,鞋盒裡有一堆食物,底部佈了鐵網,偵測到有老鼠進去以後立即關門通9V電,通個1分鐘再放牠離開,大推我自己也造一台 (Youtube片搜尋一大堆,人類真變態啊,朋友好變態啊)。可是我覺得這樣又好像有點太殘忍,不如先偵測牠們什麼時候來,嚇嚇牠們看看有沒有效果再說吧。 目的: 用Raspberry pi及手上有的感測器弄一隻放陽台用來偵測和嚇嚇老鼠的東西,並把紀錄圖像化到雲端給老爸使用。 邏輯及設計: 當老鼠進入偵測範圍,Motion Sensor偵測到生物活動Raspberry pi 處理來自Motion Sensor的訊號,如果夠強的話開始準備作出回應 Raspberry pi在Angry cats sounds中隨機選出叫聲,再經由Speaker輸出貓叫聲 Raspberry pi指示強光元件發出強光束照射目標 把偵測計數上傳到雲端圖表 材料: Sensor 在網路上看了一些Raspberry pi wild animal camera ,很多也是用Motion Sensor先偵測動物再來,我用的是PIR Motion Sensor被動式紅外線感測器,有低耗電成本便宜的好處。[1],而且可手動調整靈敏度及反應時間。 PIR Motion Sensor就是下面這個 圖片來源: learn.adafruit.com 可手動調整敏感度還有反應時間,這個有點不好調,要試好多遍才找到最佳位置。 可以在Raspbian中輸入pinout查詢GPIO避免插錯 圖片來源: learn.adafruit.com . 一台Raspberry pi 這次使用較舊的Raspberry pi model B+ 萬一老鼠生氣被咬爛錢包也不太痛 . 一張
話說休假回公司才不到兩天SQL SERVER就出狀況 Orz
昨天同事跟我說文件系統不能存取ID, 第一件事當然想到是存放ID的資料表LOCK住了.
要查出LOCK方法其實有很多, 以下是小弟歸納的網路資源, 希望幫到大家
什麼是LOCK?
德瑞克大的解釋很詳細: http://sharedderrick.blogspot.com/2007/12/blocked-lock-connectoin.html
sp_lock:
使你對系統中發生的LOCK有深入的了解。它會從master資料庫中的syslockinfo中截取與LOCK相關的大量訊息[1]. 不過我認為由於這個功能的資訊太多, 而且資料沒有好好的做sorting, 所以在危急關頭未必有閒去慢慢看.
在sp_lock會看到spid、dbid、objid、indid、type、resource、mode和status共八個欄位[2].
列出最初導致一連串其它處理序被鎖住的起始源頭(Blocking locks)
很多時候LOCK住的原因是其他的LOCK引發的, 要找出這種關係可以用下面網址的SQL
取得 SQL Server 資料庫正在執行的 T-SQL 指令與詳細資訊
個人認為這是最有用的TSQL. 很多時候除了要找出那個process發生問題以外, 重點是找出那一條在執行的SQL出了狀況然後把programmer砍掉, 這次小弟就是使用WILL保哥的SQL解決問題啦
好好學習SQL Server Lock的類型
[1] 用sp_lock診斷SQL Sever的性能問題-Mssql數據庫教程
[2] msdn sp_lock
[3] msdn sp_who
昨天同事跟我說文件系統不能存取ID, 第一件事當然想到是存放ID的資料表LOCK住了.
要查出LOCK方法其實有很多, 以下是小弟歸納的網路資源, 希望幫到大家
什麼是LOCK?
德瑞克大的解釋很詳細: http://sharedderrick.blogspot.com/2007/12/blocked-lock-connectoin.html
sp_lock:
使你對系統中發生的LOCK有深入的了解。它會從master資料庫中的syslockinfo中截取與LOCK相關的大量訊息[1]. 不過我認為由於這個功能的資訊太多, 而且資料沒有好好的做sorting, 所以在危急關頭未必有閒去慢慢看.
在sp_lock會看到spid、dbid、objid、indid、type、resource、mode和status共八個欄位[2].
- spid: 連線ID. 可配塔sp_who找出用那些用戶和該連線(spid)有關連.
- dbid: 資料庫的唯一編號
- Objid: 資料表的唯一編號, 可用select object_id('<table name>') 找到資料表相關Objid
其他的欄位可以在這裡找到相關意思.
sp_who2
sp_who的加強版本. sp_who主要提供 Microsoft SQL Server Database Engine 執行個體中有關目前使用者、工作階段和處理序的資訊[3]。而sp_who2比較像是sp_who的view, 把sp_who的資料整理得比較好. 小弟經常用它來找出那台PC的發出的process產生了LOCK. 然後毆飛那個user
列出最初導致一連串其它處理序被鎖住的起始源頭(Blocking locks)
很多時候LOCK住的原因是其他的LOCK引發的, 要找出這種關係可以用下面網址的SQL
- 列出最初導致一連串其它處理序被鎖住的起始源頭http://www.dotblogs.com.tw/karen0416/archive/2011/11/18/58623.aspx
- 或者是德瑞克大寫得好好用的SQL
http://sharedderrick.blogspot.com/2007/12/blocked-lock-connectoin.html
取得 SQL Server 資料庫正在執行的 T-SQL 指令與詳細資訊
個人認為這是最有用的TSQL. 很多時候除了要找出那個process發生問題以外, 重點是找出那一條在執行的SQL出了狀況
- 取得 SQL Server 資料庫正在執行的 T-SQL 指令與詳細資訊
http://blog.miniasp.com/post/2010/10/13/How-to-get-current-executing-statements-in-SQL-Server.aspx#continue
好好學習SQL Server Lock的類型
- CaryHsu大寫的文章說明很清楚: SQL Server - 鎖定類型介紹
http://caryhsu.blogspot.com/2011/09/sql-server.html
[1] 用sp_lock診斷SQL Sever的性能問題-Mssql數據庫教程
[2] msdn sp_lock
[3] msdn sp_who
Comments
Post a Comment