資料庫圖層的效能監視工具
可以使用 ThingWorx 部署的大多數企業級資料庫引擎都提供很好的監視與問題偵測工具。請與您的 DBA 小組合作,來監視及分析資料庫,並進行應用程式端監視。
以下是針對 PostgreSQL 與 Microsoft SQL 資料庫的一些建議的問題偵測查詢。這些資料庫是適用於 ThingWorx 模型資料的最常用企業資料庫。
Postgres
監視下列指標,以找出 PostgreSQL 伺服器上的資源瓶頸:
可用磁碟空間
CPU 使用量
I/O 使用量
您必須識別並最佳化長時間執行的查詢。此類查詢會封鎖其他查詢,並延長等待時間,直到資源再次可用為止。這可能會導致長時間執行的執行緒等待 ThingWorx 中的資料庫鎖定。資料庫鎖定會使個別陳述式鎖定列或表格的目前狀態。如果鎖定過多,則會影響應用程式的效能。
您可以使用 PSM 來偵測長時間執行的查詢及頻繁執行的查詢。
MSSQL
針對 Microsoft SQL 資料庫,建議您在生產環境每晚收集資料庫統計資料。此外,應檢閱索引以找出高度分段的情況,並根據需要重新建構,尤其是在資料庫未在 SSD 上執行的情況下。應定期檢閱 MSSQL 延伸事件記錄檔,以找出 ThingWorx 資料庫中的任何長時間等待或鎖死操作。在效能較慢期間,下列查詢可識別出等待資源的交易:
SELECT t.*,r.*, SUBSTRING(t.text, statement_start_offset/2 + 1,
(CASE WHEN statement_end_offset = -1
THEN LEN(CONVERT(nvarchar(max), t.text)) * 2
ELSE statement_end_offset
END - statement_start_offset) / 2)
FROM sys.dm_exec_requests AS r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS t
如果陳述式顯示為已暫停或正在執行較長的持續時間,請檢查 wait_typewait_resource 欄,以找出產生等待時間的原因。
如需查看陳述式是否正等待任何鎖定,請識別工作階段 ID 並執行:
select * from sys.dm_tran_locks where session_id = 158