/* 用戶自定義函數:執行時間在1150-1200毫秒左右 CREATE FUNCTION [dbo].[gethl] (@types nvarchar(4)) RETURNS table AS return select 書名 from 圖書三十萬條 Where 分類 Like '%'+@types+'%' 存儲過程: CREATE PROCEDURE [dbo].[getfl](@typen nvarchar(4)) AS select 書名 from 圖書三十萬條 Where 分類 Like '%'+@typen+'%' */
復制代碼 代碼如下:
declare @a datetime,@b nvarchar(4) set @a=getDate() select 書名 from 圖書三十萬條 Where 分類 Like '%醫學%' --“分類”列有非聚集索引,比聚集索引1150快一點,差不多執行時間在1100左右 -- select 書名 from gethl('醫學') --使用用戶自定義函數,效率和建立聚集索引一樣,還稍慢一點 在1150-1200 -- Execute getfl '醫學' --調用存儲過程不能用括號包含參數 Execute getfl('醫學') -- select 書名 from VIEW1 --視圖 print '運行時間: print datediff(ms,@a,getDate())