延續先前文章:[SQL Server] SQLQueryStress, Stress testing, 壓力測試
本文討論:
SQLQueryStress: 搭配 參數(Parameter),以預存程序(Stored Procedure)、T-SQL 參數(Parameter) 為例
-- 001_SQLQueryStress: 搭配 預存程序(Stored Procedure) 與 參數(Parameter)
-- 002_SQLQueryStress: 搭配 T-SQL 參數(Parameter)
SQLQueryStress: 搭配 參數(Parameter),以預存程序(Stored Procedure)、T-SQL 參數(Parameter) 為例
任務01:SQLQueryStress: 搭配 預存程序(Stored Procedure) 與 參數(Parameter)
-- 010_設定要執行 參數化 程式
-- 011_點選_Parameter_Substitution
-- 012_準備設定_Parameter_Query
-- 013_點選_Database_設定資料庫連線資訊
-- 014_輸入要取出參數值的程式碼
-- 015_點選_Get_Columns
-- 016_下拉_點選_Column
-- 017_已經取得資料行
-- 018_點選_DataType
-- 018_02_預存程序,設定參數
-- 019_SQL_Profiler_錄製_帶入參數值來執行
-- 020_SSMS_觀察執行的預存程序_次數
-- 021_SSMS_觀察執行的預存程序_次數_2
-- 022_SSMS_觀察執行的預存程序_次數_3
-- 023_SSMS_觀察執行的預存程序_次數_4
任務02:SQLQueryStress: 搭配 T-SQL 參數(Parameter)
-- 100_參數化的查詢式
-- 101_設定_Parameter_Query
-- 102_執行 SQLQueryStress
-- 103_SSMS_參數化_執行次數
-- 104_SSMS_參數化_執行次數_2
-- 105_SSMS_參數化_執行次數_3
-- 106_SQL_Profiler_參數化查詢式_帶入參數
範例程式碼
01-執行預存程序 [CustOrdersDetail],參數:@OrderID
-- 00-執行預存程序 [dbo].[CustOrdersDetail],輸入參數:@OrderID USE Northwind GO EXEC [dbo].[CustOrdersDetail] @OrderID=10248 GO
02-SQLQueryStress 要執行的範例程式碼
-- 01-SQLQueryStress 要執行的範例程式碼 EXEC [dbo].[CustOrdersDetail] @OrderID=10248; -- 02-在 Parameter Substitution 要執行的範例程式碼 SELECT OrderID FROM Orders; -- SELECT * FROM [Order Details] WHERE OrderID =10248;
03-Query: Execution count for stored procedure
-- 10-Query: Execution count for stored procedure -- 查詢 預存程序 的執行次數 USE master GO SELECT DB_NAME(st.dbid) 'DB' ,OBJECT_SCHEMA_NAME(st.objectid,dbid) 'Schema', OBJECT_NAME(st.objectid,dbid) 'SP' ,MAX(cp.usecounts) 'ExecutionCount' , cp.objtype, cp.cacheobjtype, st.text FROM sys.dm_exec_cached_plans cp CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) st WHERE DB_NAME(st.dbid) IS NOT NULL AND cp.objtype = 'Proc' AND DB_NAME(st.dbid) ='Northwind' -- Filter GROUP BY cp.plan_handle, DB_NAME(st.dbid), OBJECT_SCHEMA_NAME(objectid,st.dbid), OBJECT_NAME(objectid,st.dbid), cp.objtype, cp.cacheobjtype, st.text ORDER BY MAX(cp.usecounts) DESC GO -- SELECT * FROM sys.dm_exec_cached_plans cp CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) st WHERE DB_NAME(st.dbid) ='Northwind' -- Filter GO
參考資料
[SQL Server] SQLQueryStress, Stress testing, 壓力測試
沒有留言:
張貼留言