日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一次简单的sql性能比较

發布時間:2023/12/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一次简单的sql性能比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用普通的 while循環插入數據

執行5分鐘(未執行完,并且已經報內存溢出的錯誤。)

declare @feesCount bigint; declare @feesid bigint set @feesCount=1 set @feesid=100201000000002422while(@feesCount<=100000) begin INSERT INTO [dbo].[TF_Fees]([FeesID],[CommID],[CustID],[RoomID],[CostID],[CorpStanID],[StanID],[HandID],[ParkID],[CarparkID],[MeterSign],[AccountsDueDate],[FeesDueDate],[FeesStateDate],[FeesEndDate],[DueAmount],[DebtsAmount],[WaivAmount],[PrecAmount],[PaidAmount],[RefundAmount],[ContID],[LeaseContID],[OwnerFeesID],[IsAudit],[IsBank],[IsCharge],[IsFreeze],[IsProperty],[IsPrec],[CalcAmount],[CalcAmount2],[IncidentID],[StanMemo],[CommisionCostID],[CommisionAmount],[WaivCommisAmount],[PerStanAmount],[AccountFlag],[FeesMemo],[MeterID],[PMeterID],[CsmTaskID])select @feesid+@feesCount as [FeesID],600 as [CommID],[CustID],[RoomID],[CostID],[CorpStanID],[StanID],[HandID],[ParkID],[CarparkID],[MeterSign],[AccountsDueDate],[FeesDueDate],[FeesStateDate],[FeesEndDate],[DueAmount],[DebtsAmount],[WaivAmount],[PrecAmount],[PaidAmount],[RefundAmount],[ContID],[LeaseContID],[OwnerFeesID],[IsAudit],[IsBank],[IsCharge],[IsFreeze],[IsProperty],[IsPrec],[CalcAmount],[CalcAmount2],[IncidentID],[StanMemo],[CommisionCostID],[CommisionAmount],[WaivCommisAmount],[PerStanAmount],[AccountFlag],[FeesMemo],[MeterID],[PMeterID],[CsmTaskID]from TF_Feeswhere FeesID=@feesidset @feesCount=@feesCount+1; end

?

改用CTE后

declare @feesCount bigint; declare @feesid bigint set @feesCount=1 select @feesid=MAX(feesid) from TF_FeesCreate TABLE #temp ([FeesID] [bigint] NOT NULL,[CommID] [int] NULL,[CustID] [bigint] NULL,[RoomID] [bigint] NULL,[CostID] [bigint] NULL,[CorpStanID] [bigint] NULL,[StanID] [bigint] NULL,[HandID] [bigint] NULL,[ParkID] [bigint] NULL,[CarparkID] [bigint] NULL,[MeterSign] [nvarchar](10) NULL,[AccountsDueDate] [datetime] NULL,[FeesDueDate] [datetime] NULL,[FeesStateDate] [datetime] NULL,[FeesEndDate] [datetime] NULL,[DueAmount] [numeric](18, 2) NULL,[DebtsAmount] [numeric](18, 2) NULL,[WaivAmount] [numeric](18, 2) NULL,[PrecAmount] [numeric](18, 2) NULL,[PaidAmount] [numeric](18, 2) NULL,[RefundAmount] [numeric](18, 2) NULL,[ContID] [bigint] NULL,[LeaseContID] [bigint] NULL,[OwnerFeesID] [bigint] NULL,[IsAudit] [smallint] NULL,[IsBank] [smallint] NULL,[IsCharge] [smallint] NULL,[IsFreeze] [smallint] NULL,[IsProperty] [smallint] NULL,[IsPrec] [smallint] NULL,[CalcAmount] [numeric](18, 2) NULL,[CalcAmount2] [numeric](18, 2) NULL,[IncidentID] [bigint] NULL,[StanMemo] [nvarchar](200) NULL,[CommisionCostID] [bigint] NULL,[CommisionAmount] [numeric](18, 2) NULL,[WaivCommisAmount] [numeric](18, 2) NULL,[PerStanAmount] [numeric](18, 2) NULL,[AccountFlag] [int] NULL,[FeesMemo] [nvarchar](255) NULL,[MeterID] [bigint] NULL,[PMeterID] [bigint] NULL,[CsmTaskID] [uniqueidentifier] NULL)print @feesCount while(@feesCount<=100000) begin INSERT INTO #temp([FeesID],[CommID],[CustID],[RoomID],[CostID],[CorpStanID],[StanID],[HandID],[ParkID],[CarparkID],[MeterSign],[AccountsDueDate],[FeesDueDate],[FeesStateDate],[FeesEndDate],[DueAmount],[DebtsAmount],[WaivAmount],[PrecAmount],[PaidAmount],[RefundAmount],[ContID],[LeaseContID],[OwnerFeesID],[IsAudit],[IsBank],[IsCharge],[IsFreeze],[IsProperty],[IsPrec],[CalcAmount],[CalcAmount2],[IncidentID],[StanMemo],[CommisionCostID],[CommisionAmount],[WaivCommisAmount],[PerStanAmount],[AccountFlag],[FeesMemo],[MeterID],[PMeterID],[CsmTaskID])select @feesid+@feesCount as [FeesID],600 as [CommID],[CustID],[RoomID],[CostID],[CorpStanID],[StanID],[HandID],[ParkID],[CarparkID],[MeterSign],[AccountsDueDate],[FeesDueDate],[FeesStateDate],[FeesEndDate],[DueAmount],[DebtsAmount],[WaivAmount],[PrecAmount],[PaidAmount],[RefundAmount],[ContID],[LeaseContID],[OwnerFeesID],[IsAudit],[IsBank],[IsCharge],[IsFreeze],[IsProperty],[IsPrec],[CalcAmount],[CalcAmount2],[IncidentID],[StanMemo],[CommisionCostID],[CommisionAmount],[WaivCommisAmount],[PerStanAmount],[AccountFlag],[FeesMemo],[MeterID],[PMeterID],[CsmTaskID]from TF_Feeswhere FeesID=@feesidset @feesCount=@feesCount+1; endselect * from #temp;disable trigger [TRG_TF_Fees_GetMaxFeesID] on TF_Fees insert into TF_Fees select * from #temp ; enable trigger [TRG_TF_Fees_GetMaxFeesID] on TF_Fees drop table #temp

執行只用13秒。。。。。

轉載于:https://www.cnblogs.com/shikyoh/archive/2013/01/28/2879874.html

總結

以上是生活随笔為你收集整理的一次简单的sql性能比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。