搜尋本站文章

2017-08-05

[SQL Server] Stress testing, SQLQueryStress parameter, 壓力測試, 搭配使用 參數 (2)


延續先前文章:[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, 壓力測試