- sql 使用 where 下列使否影響查詢成本
- 條件多寡
- 使用 "=" 與 "in"
- 資料庫使用 Adventure Works for SQL Server 2012 的資料表 Production.Product
- Step 1. 查詢
select * from Production.Product where Name = 'Chainring'
select * from Production.Product where Name = 'Chainring' or Name = 'Reflector'
select * from Production.Product where Name in ('Chainring', 'Reflector')
- Step 2. 查詢結果
- 查詢 1:where 條件較少相對成本較低
- 查詢 2:where 條件較多相對成本較高
- 查詢 3:使用 "=" 與 "in" 成本是相同
- Step 3. 工具提示查看 I/O 與 CPU 成本
- 估計的 I/O 成本:I/O 活動的估計成本
- 估計的 CPU 成本:CPU 活動的估計成本
- 估計的運算成本:估計的 I/O 成本 + 估計的 CPU 成本
- 估計的子樹成本:該作業與子樹中所有作業的 “估計的運算成本” 累加總和
- Result:
- where 條件越多越複雜,查詢成本相對會越高
- 使用 "=" 與 "in" 成本是相同
- REF:
- SQL Server 效能調校
沒有留言:
張貼留言