当前位置:主页>销售管理软件> 列表

老板要SQL Server2000基准测试数据,晕 找药品零售软件

仓库管理软件版1楼: 老板让我提供SQL Server2000的一些技术参数,不说废话,看下面:
老板的意思是一台服务器(双至强CPU 3.2G,内存4GB~8GB,raid5(15000转))上能不能同时连800个客户端,并且每个客户端的发出SQL语句后要在1秒钟内要能返回处理掉(当然是较简单的TSQL语句)。这些客户端大概有40种不同的应用程序在跑(C/S型架构)!服务器上就只有一个数据库,最先会有5GB左右,以后日增估计会达800MB~1GB级!
以我自己的观点来看,支持800个客户端没有问题,但是要求都要在1s内返回结果(或提交事务)实在是困难!
老板要我用数字说明,晕啊!
说白了,SQL Server2000能不能在一秒内处理9000次select、update、insert、delete,而且只是在一台服务器上实现,公司不会搞联合数据库的。
客户端网卡100Mbps

我觉得不可能实现,可是老板让我用测试数据说明!

2楼: 先不考虑网络问题,那么大的数据库,如果执行一条复杂度不高的查询语句可能都比较消耗时间,如果是复杂度比较高的,别说900个客户,一个客户执行1分钟都是常见的,1秒钟?笑话! 如进销存系统详细设计

3楼: SQL SERVER ,每天1G左右的数据,800个客户端连接,在1S内返结果,再好的服务器也没用啊,ORACEL也做不到的,何况还是SQL SERVER。


返回结果的速度是跟你取的数据量有关的啊,怎么能简单的就说在1S内返回结果呢?

4楼: 对呀,就是一个客户口端可能也做不到

5楼: 唉,你是在说天书吧!

6楼: 你问你老板用一百个煤气灶烧一壶水,能一秒钟烧开不?

仓库管理软件版7楼: 你做一个测试程序,让你老板看看啊!
光最简单的SELECT试一下就可以,复杂的就不要说。


我这里统计报表都有长达四五十分钟的,虽然可能不是最优语句,但这个足以说明问题了。

8楼: 可以用SQL专用的测试软件测试

9楼: 你老板以前估计是开火车的,一拖多拖惯了。
他把服务器也当成火车头了。大白天说梦话。

10楼: 1GB数据量不是问题,只要你表结构设计的好,索引使用的好,数据再多一点儿也没问题;
如果你老板只是要求单笔操作能够返回,那也是有可能实现的,最简单的那种操作;
但如果是两层的C/S架构,估计会很成问题,800个客户端直接连数据库,我可没有尝试过,想想也恐怖,呵呵,我以前做过的项目,三层C/S结构,中间层是公司自己开发的应用服务器,一个比较复杂的操作(包含取一些基础数据、校验操作员权限、更新数据等),做在存储过程里,一秒中执行五六百笔是可以的,服务器比较好,我参加的一次性能测试是Compaq8000,8路CPU,存储柜好像是IBM的,硬盘配全,网络环境也要比较好,应用服务器与数据库服务器之间用千兆光纤,客户端到应用服务器是百兆,按照这种硬件环境,很简单的操作一秒完成1000笔应该问题也不大的。

11楼: ps:如果是统计、报表之类的需要大批量统计操作的话,情况就与上面各位大侠们描述的一样,你想要多久就多久,呵呵。

12楼: 這要根據你自己的條件進行測試,對數據量大當然慢一些,數據量少一秒可以處理十萬級以上。 如药品零售软件

13楼: :无头骑士


能不能给个思路怎么个测试法!


:huangsong
有什么样的工具可以测,指教啦!

:Wolfding
公司的程序是产线是使用的,光一个简单的TSQL 语句一秒内返回应该是没有什么问题,主要是,预计会有800个客户端,客户端每刷一次条形码大约会发出10个TSQL请求,大多是select(用于比对),所以老板想知道,大家同时刷条码,一秒内会不会完成。主要是要用具体数字来说明,我不知道如何提供该数字!
如果我说不行,老板肯定问为什么不行,把数字拿出来。
如果我说行万一不行,那我的麻烦就大了!头疼啊!

仓库管理软件版14楼: 能不能这样假设:1个CPU技术如何先进,它运算的命令总是按队列执行的,这样,双CPU双核心,就最多4个线程同时执行,
你设计一个程序连续向服务器发出随机执行存储过程,存储过程中应有10条TSQL命令,
找4台机同时运行这个问题程序,观察其中一台机连续发出200条查询后用多少时间!

我想以你介绍的硬件水平是不太可能达到1秒就执行200次的速度,所以800个连接就不用测试了.
万一能达到,你就设计一个多线程序的程序再测试!

15楼: to lz:
第一,从你的描述里看,你应该是直接使用TQuery执行select来比对的,而且每刷一次条形码大约会发出10个select,这样做的效率是非常差的,DBMS耗费的时间不光是在执行sql语句上,而且还有很大一部分在线程调度上,特别是连接数多的时候,你发10次小的任务,跟发一次任务带10个参数,差别是非常大的,如果这些比对过程不需要先后顺序,那就不要这么做,同样的功能调用次数越少越好;
第二,如果要在现有条件下做测试,那最直观的做法就是模拟现实,找若干台机器,每台机器上开若干个测试程序,这个测试程序可以简单的按照真实客户端的样子向服务器发请求,也可以用多线程程序做测试,但也没有完全的必要;如果你测试过程中1秒钟所有测试客户端调用成功的次数加起来超过了800,那就说明800个客户端同时发请求是可以在1秒内完成的,基本上如此。

16楼: 如果要使用工具测试的话,推荐使用LOADRUNNER,比较专业。

17楼: 赞成Wolfding

18楼: 多人接受答案了。