今天做了一个测试:先把记录一次读出,用static静态变量:private static SortedList sl = new SortedList();
测试环境:ie登录一个账户(此记录多,慢),FF登录一个账户(此记录少,烧麦)。
ie下用户测试结果:
C# code
开始时记录个数:0
*有新纪录时记录个数:0
*新纪录:ID-40/(此时总个数:1)
*新纪录:ID-41/(此时总个数:2)
*新纪录:ID-42/(此时总个数:4)
*新纪录:ID-43/(此时总个数:6)
*新纪录:ID-44/(此时总个数:8)
*新纪录:ID-45/(此时总个数:10)
*新纪录:ID-46/(此时总个数:12)
*新纪录:ID-47/(此时总个数:13)
*新纪录:ID-48/(此时总个数:14)
*新纪录:ID-49/(此时总个数:15)
*新纪录:ID-50/(此时总个数:16)
*新纪录:ID-51/(此时总个数:17)
*新纪录:ID-52/(此时总个数:18)
*新纪录:ID-53/(此时总个数:19)
*新纪录:ID-54/(此时总个数:20)
*新纪录:ID-55/(此时总个数:21)
*新纪录:ID-56/(此时总个数:22)
*新纪录:ID-57/(此时总个数:23)
*新纪录:ID-58/(此时总个数:24)
*新纪录:ID-59/(此时总个数:25)
*新纪录:ID-60/(此时总个数:26)
*新纪录:ID-61/(此时总个数:27)
*新纪录:ID-62/(此时总个数:28)
*新纪录:ID-63/(此时总个数:29)
*新纪录:ID-64/(此时总个数:30)
*新纪录:ID-65/(此时总个数:31)
*新纪录:ID-66/(此时总个数:32)
*新纪录:ID-67/(此时总个数:33)
*新纪录:ID-68/(此时总个数:34)
*新纪录:ID-69/(此时总个数:35)
*新纪录:ID-70/(此时总个数:36)
*新纪录:ID-71/(此时总个数:37)
*新纪录:ID-38/(此时总个数:38)
*新纪录:ID-37/(此时总个数:39)
*纪录总个数:39
ff下用户测试结果:
C# code
开始时记录个数:1
*有新纪录时记录个数:1
*新纪录:ID-73/(此时总个数:3)
*新纪录:ID-74/(此时总个数:5)
*新纪录:ID-75/(此时总个数:7)
*新纪录:ID-76/(此时总个数:9)
*新纪录:ID-77/(此时总个数:11)
*纪录总个数:11
---------------------------------------------------------------------
现在有个问题是:两个账户的记录列表是通过一个用户ID区别的,下边是定义ID的方法:
private static string UserNo = string.Empty;
显示的结果:两个账号显示的结果一样,都是记录少的用户的记录(这个页面先显示)
原因:static是定义静态变量的,在程序生命周期里一直存在,知道程序关闭。所以他成为两个账号的共享变量了,所以就出现记录相同的情况。
解决:这样定义就行了:private string UserNo = string.Empty;
感触:很多常用的东西,理解往往很模糊,以后要多注意小细节。
----------------------------------------------------------------------------
如果记录超多,定义成static类型,会有什么隐患吗?注意事项有什么?对于改善我提的问题有帮助吗?
希望大家多多提意见。
问题补充:
两个数据库分别在两个服务器上,运行的网站在另外一个服务器上,用户量与记录量都是超多的那种。
如果我用这个方案:
“先把记录一次读出,用static静态变量:private static SortedList sl = new SortedList(); 保存一个从数据库的记录。供主数据库使用。” 这种方案的效果是:对于第一次访问和有新纪录时速度慢,其他时速度可以。(由我的上一贴可以知道那些已经访问的记录,是一直存在和共存的。担心会有隐患!!!!)
希望大家提供其它方案来交流!!!!!!!!!