程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 淺談SQL Server數據庫並發測試方法

淺談SQL Server數據庫並發測試方法

編輯:關於SqlServer

1. 利用測試工具模擬多個最終用戶進行並發測試;

這種測試方法的缺點:最終用戶往往並不是直接連接到數據庫上,而是要經過一個和多個中間服務程序,所以並不能保證訪問數據庫時還是並發。其次,這種測試方法需要等到客戶端程序、服務端程序全部完成才能進行;

2. 利用測試工具編寫腳本,直接連接數據庫進行並發測試;

這種方法可以有效的保證並發操作,而且在數據庫訪問程序完成即可測試,可以大大縮短測試時間,而且測試效果更好。

下面通過一個演示程序,演示使用Robot使用第二種測試方法進行數據庫的並發測試。

第一步:創建演示程序

打開SQL SERVER查詢分析器,在SQL SERVER測試數據庫中執行下列腳本(腳本執行操作:創建表testtable,並插入一條記錄;創建存儲過程test): 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Test]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[Test]

GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[testtable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[testtable]

GO

CREATE TABLE [dbo].[testtable] (

[testid] [int] NULL ,

[counts] [int] NULL

) ON [PRIMARY]

GO

insert into testtable (testid,counts) values (1,0)

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_NULLS ON

GO

CREATE Procedure dbo.Test

as

declare @count int

begin tran TEST

select @count=countsfrom testtable where testid=1

update testtable setcounts=@count+1

if (@@error >0) begin

rollback tran TEST

end else begin

commit tran TEST

end

GO

SET QUOTED_IDENTIFIER OFF

GO

SET ANSI_NULLS ON

GO

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved