--這次建了視圖
CREATE TABLE ms(
[fcid] [int] IDENTITY(1,1) primary key NOT NULL,--自增長ID
[m] [int] NULL CONSTRAINT [DF__member_money__m__0519C6AF] DEFAULT ((0)),--發生金額,收入時為正值,消費時為負值
[d] [datetime] NULL,--日期時間
[des] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,--摘要
[mid] [int] NULL,--會員ID
[ye] [int] NULL,--餘額 )
go
create proc pro_fc(@mid int,@m int,@des varchar(50)) as
declare @d datetime
set @d =getdate()
insert into ms(mid,m,d,des) values (@mid,@m,@d,@des)
declare @i int
set @i = 0;
while(@i < 1000000)
begin
exec pro_fc 1001,1,'儲值'
exec pro_fc 1001,-1,'消費'
set @i = @i +1
end
create view _fl_view as
select mid as 會員ID,d as 時間,des as 摘要,m 金額,餘額 = isnull(ye,(select sum(m) from ms b where fcid <= a.fcid and mid=a.mid )) from ms a
SET STATISTICS TIME ON
go
select top 1000 * from _fl_view where 會員ID=1001
GO
select * from _fl_view where mid=1001
SET STATISTICS TIME OFF;
--訊息
SQL Server 執行時間: CPU 時間 = 0 毫秒,耗費時間 = 0 毫秒。 SQL Server 分析和編譯時間: CPU 時間 = 16 毫秒,耗費時間 = 17 毫秒。 (所影響的行數為 1000 行) SQL Server 執行時間: CPU 時間 = 922 毫秒,耗費時間 = 961 毫秒。 SQL Server 分析和編譯時間: CPU 時間 = 0 毫秒,耗費時間 = 0 毫秒。