求助:一个性能改善的问题

caobob 2009-11-05 03:19:07
项目下同时连接的客户端可能有1000台左右,WEB服务器的平衡负载没有问题。现在需要做到每个页面每隔一段时间,比如10秒,Ajax方法查询一下单据的状态,然后实时提醒。

由于这样等于在1秒内IIS服务器要处理100条类似的SQL查询导致DB服务器变得性能低下。所以要想办法改善一下。

我想写一个静态类,把需要查询的数据放入hashtable作为一个属性,再有一个timer定时取数据库中的数据来更新这个hashtable。而Ajax调用的响应页面不再直接访问数据库,而是来访问这个类的属性。

有没有做过类似项目的朋友,给我点意见。谢谢!
...全文
203 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
happy664618843 2009-11-06
  • 打赏
  • 举报
回复
缓存 或者范型 hashtable
caobob 2009-11-06
  • 打赏
  • 举报
回复
还是把hashtable放进了cache,然后做了个页面按照设定自动更新cache。效果还是可以的。谢谢大家,结贴。
atls 2009-11-05
  • 打赏
  • 举报
回复
如果你自认是高手,尽管可以用static
菜鸟还是乖乖用微软给你的缓存,不要到时出问题还不知道什么原因。
xuan.ye 2009-11-05
  • 打赏
  • 举报
回复
我觉得你的方案已经很好了
剩下的就是hashtable是 static的?还是存在session?

我的意思就是 static hashtable 然后过滤条件再返回到页面?还是hashtable存在session里面?
ajaxtop 2009-11-05
  • 打赏
  • 举报
回复
访问分区

查询数据分页+索引+存储过程+视图+缓存

尽量不影响用户情况下,稍长时间访问数据库(100秒,或更长)


数据量大,只能分页处理,只有适中取舍,有得有失
wuyq11 2009-11-05
  • 打赏
  • 举报
回复
数据库缓存依赖,数据库更新更新缓存。
数据库量很大,就要使用分页或索引,分区查询数据
snowflying928 2009-11-05
  • 打赏
  • 举报
回复
up mark 学习
asdfa23rdadsdfa 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sandy945 的回复:]
缓存~
[/Quote]

up
yyz985 2009-11-05
  • 打赏
  • 举报
回复
漏了 updates设为static
yyz985 2009-11-05
  • 打赏
  • 举报
回复

namespace A
{
using System;
using System.Collections.Generic;

public enum OrderUpdateStatus { Added, Removed, Modified }
public class OrderEntity { }
public class OrderUpdateItem
{
OrderUpdateStatus Status;
DateTime UpdateTime = DateTime.Now;
OrderEntity Order;
}
public class OrderBusiness
{
Queue<OrderUpdateItem> updates;
void AddOrder(OrderEntity entity)
{
//...insert into
OrderUpdateItem item = new OrderUpdateItem();
item.Status = OrderUpdateStatus.Added;
item.Order = entity;
updates.Enqueue(item);
}
void Updateorder(OrderEntity entity)
{
//....
}
void DeleteOrder(OrderEntity entity)
{
//....
}
Queue<OrderUpdateItem> GetUpdates(DateTime time)
{
Queue<OrderUpdateItem> result = new Queue<OrderUpdateItem>();
foreach (OrderUpdateItem item in updates)
{
if (item.UpdateTime > time) result.Add(item);
}
SessionManager.clientsUpdateTime = time;
CleanUpdates();
return result;
}
private void CleanUpdates()
{
DateTime t = SessionManager.GetFirstUpdateTime();
while (updates.Count > 0)
{
OrderUpdateItem item = updates.Peek();
if (item.UpdateTime < t) updates.Dequeue();
}
}
}
public class SessionManager
{
static Dictionary<Session, DateTime> clientsUpdateTime;
static void On_Session_Leave()
{
clientsUpdateTime.Remove(session);
}
static DateTime GetFirstUpdateTime()
{
DateTime result = DateTime.MaxValue;
foreach (KeyValuePair<Session, DateTime> kv in clientsUpdateTime)
{
if (kv.Value < result) result = kv.Value;
}
return result;
}
}
}
zhujiechang 2009-11-05
  • 打赏
  • 举报
回复
缓存、然后定时过期
igelf 2009-11-05
  • 打赏
  • 举报
回复
数据不存数据库..直接存缓存..
mbh0210 2009-11-05
  • 打赏
  • 举报
回复
看你查询语句的复杂程度,时间间隔的长短(也就是事实性的要求)

事实性要求不高,你隔断时间更新缓存就行

实时性高的话,在其他操作的时候更新掉缓存。
hy_lihuan 2009-11-05
  • 打赏
  • 举报
回复
1、用户对数据的实时性要求很高吗?10秒的延时可以吗?20秒呢?
2、用户访问很频繁的数据是那些?最新变更过的?有一些特性吗?

尽量保持80/20原则,达到最优化;
SuperTyro 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 caobob 的回复:]
引用 17 楼 webdiyer 的回复:
把你Ajax查询调用的页面用outputcache缓存一下不就得了吗?


有个问题是虽然这些客户端查询的内容不都一样。缓存起不了作用。客户端的SQL类似select [status] from a where id=XXX。每个客户端可能每次对id的查询不同。而status会因为业务被经常更新。
[/Quote]

既然是根据某个用户都不一样,而且会经常刷新,LZ可以看看告诉缓存,我记得spring有这个实现,很方便很强大。
SuperTyro 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sandy945 的回复:]
缓存~
[/Quote]

经常会被查看,但不经常刷新的页面可以缓存处理。
mohugomohu 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 caobob 的回复:]
做了个测试项目,Temer类不能用。这是我一直担心的问题。C/S我可以写win Service程序。B/S我怎么写。
[/Quote]

只有js这条路
hecong875 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sandy945 的回复:]
缓存~
[/Quote]

Cache
caobob 2009-11-05
  • 打赏
  • 举报
回复
做了个测试项目,Temer类不能用。这是我一直担心的问题。C/S我可以写win Service程序。B/S我怎么写。
caobob 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 webdiyer 的回复:]
把你Ajax查询调用的页面用outputcache缓存一下不就得了吗?
[/Quote]

有个问题是虽然这些客户端查询的内容不都一样。缓存起不了作用。客户端的SQL类似select [status] from a where id=XXX。每个客户端可能每次对id的查询不同。而status会因为业务被经常更新。
加载更多回复(17)
请先阅读帮助文档:http://ismyway.com/help [2009.1.1] Ver 3.2.26 ※如果安装提示证书过期或无法安装,请在手机上将时间改为2008.8.8,安装设置完成后再将日期改回即可!※ 增加天语的按键映射 增加三星的背景灯控制功能(该功能未在真机上测试过) 删除图片浏览中的部分功能,由于这部分功能需要较大的内存,导致在大部分手机上无法完成,同时也引起背景图片无法设置成功 触摸屏用户可以不再受滚动条限制,在屏幕上任意地方都可以进行拖动 选择键盘映射为其它时无法再次更改的BUG 用户输入的颜色值无法保存的BUG 修正英文单词分词时会多添加一个空行的BUG 繁体语言措词上的修正 阅读设置中增加一个“文件缓存”选项,默认情况下是开启的,在NOKIA手机上会提高UMD等文件的表现,但由于测试并不充足,如果程序经常在阅读时出错,请关闭该选项(其它手机是否开启该选项并无明显的影响) 修正编辑文件后无法保存的BUG [2008.10.27] Ver 3.2.24 ※如果安装提示证书过期或无法安装,请在手机上将时间改为2008.8.8,安装设置完成后再将日期改回即可!※ 改进的颜色选择方式 允许用户重新选择键盘映射 HTML阅读时的错误 进一步完善编辑功能(仍有少许BUG,请继续反馈,谢谢) 新建文件后自动跳转到编辑中 改进的文件操作方式,速度轻微提升 UMD速度明显提升,并且减少内存占用,特别是在NOKIA手机上,表现提升超过600% 改进的输入框模式,以使得能适应更多的手机如天语等 [2008.10.21] Ver 3.2.23 为了提高运行效率,以下功能在LITE上将被取消(自定义欢迎页问候语;欢迎页背景图) 取消了JAR的支持,提高运行效率 修正打开大ZIP文件时的内存溢出错误 ·修正:  自动滚屏到末尾时,滚屏功能将停止 [2008.10.4] Ver 3.2.22 暂时删除了播放功能及网络相关的功能,由于以上两项功能一直没有能稳定下来,故暂时删除 增强了ZIP功能,支持带文件夹结构的ZIP/JAR文件 (对于大部分JAR电子书都,可以从文件管理器中找到非.class结尾的文件,并且选择打开为UNICODE/TXT阅读) (对于NOKIA手机及其它部分手机,由于安全策略的限制,在Anyview的文件管理器中无法查看后缀为.jar的文件) 自定义问候语(系统路径下dictum.rc文件,格式参见jar包中的dictum.rc文件,保存时使用UTF-8编码,可写条目为0~9/a~z/A~Z,置空时表示不显示问候语) ·修正:  0键在各偏好中切换时亮度混乱的问题  部分手机上无法新建文件夹 [2008.9.11] Ver 3.2.21 修正动画参数无法保存的BUG 动画效果不再对阅读翻页有作用 [2008.8.29] Ver 3.2.21 可将正在阅读的内容通过短信与好友分享 增加一种新的滚屏方式:波浪,同时,阅读时3键不再使用默认的像素滚屏,而会使用最后一次使用的滚屏方式 任何可用的外置字库都可以作为内置字库存在,在jar包中存在dot.font会被当为内置字库加载 加快大文件的打开速度,特别是对于NOKIA手机,S60上,打开20M文件,97%左右的位置不超过15秒 允许用户打开动画效果 ·M600/P990/P1/W950  修正键盘映射时“内存不足”的BUG ·E680/A780  选中后台播放后无法启动的BUG [2008.7.30] Ver 3.2.20 调整部分索爱手机上背景灯控制的逻辑 修正看图片时按0键出错的BUG 旋转屏幕引起的字外出 打开LRC最后出错 阅读到尾部弹出“上一个/下一个”窗口中的文件名过长不刷新的问题 偏好切换时亮度混乱的问题 在NOKIA上,当系统路径设置为根目录是无法启动的BUG E398上可以开关键盘灯 UIQ系统在退出时可以保持亮度 索爱上按“返回”键后导致阅读出现白屏的BUG 阅读时切换屏幕方向导致字体超出屏幕的BUG 欢迎屏幕上的日期使用中文显示 如果使用触屏手机,跳转改为进度条模式,以方便触屏操作 系统路径下如果存在bg.png文件,则会作为欢迎界面的背景图片显示(右下角) 减少跳转及翻页中出现乱码的机率 提高阅读时绘图效率,滚屏效率同样提高 播放时,暂停会导致声音爆至最大的BUG 内置“忘记月亮”制作的两款主题《典雅红》《黑橙》,并且更换主题不再要求退出 文件管理器中支持“剪切”功能 文件管理器中新增转换UMD为TXT的功能(解开操作,解开2无效!) 增加了编辑功能(尽管没有限制文件大小,但请别编辑过大的文件,另外,为了提高速度,不进行全文排版,有时候表现可能会有些不习惯),以后会进一步完善 启动时,会自动识别NOKIA、SONYER
为Trello增加了许多有用功能的扩展程序 如有您的想法,建议和错误报告,请通过yazla86@gmail.com与我联系 Ultimello旨在使用某些有用的功能扩展Trello应用程序 Ultimello的功能:-卡之间的连接。该功能仍处于BETA中,因此非常感谢您的反馈-按*截止日期*标题(按字母顺序)*投票*标签*上次活动日期*创建日期对列表进行排序 *列表中的出现日期默认情况下,排序仅是UI,并且不会保存为卡的实际顺序,除非您单击“应用当前排序”-在列表标题中显示卡计数1.8.0中的新建-按最后排序活动-改善整体排序体验1.7.1中的新增功能-性能和内存方面的巨大改进1.6.2中的新增功能-修复了“连接按钮过多”的问题1.6中新增了-修复了问题:“在打开后无法打开板或卡编辑连接“” 1.5中的新增功能-按“列表中的出现日期”排序-基于日期的字段的默认排序顺序现在是后代。1.4.42中的新增功能-解决了在“显示连接”模式下不显示父卡的问题-修复了显示在1.4.40中的新增功能的卡计数中的几个错误-现在将已连接的卡保存为链接-修复了已连接的卡功能的错误修复了1.4.20中的新增功能-修复了新的Trello UI更新的兼容性问题1.4.1中的新增功能-已修复问题“无法关闭已连接的卡功能” 1.4中的新增功能-新功能:卡之间的连接-解决了在1.3.7中新增的配置标签排序顺序的问题-解决了在Trello中保存排序顺序的问题,在1.3.6中修复了新问题-解决了在1.3中通过直接链接NEW打开卡片时Ultimello无法正常工作的问题 5:-现在,列表的排序状态已保存,并在加载板后自动应用。如果您不需要自动对特定列表进行排序,则可以始终对其进行“重置”。历史记录:修复了与其他扩展程序的兼容性问题。解决了卡数问题。修复了与本地化不兼容的问题。解决了启用触摸的设备中标签排序顺序的问题。修复了CardsCounter扩展的兼容性问题 Ultimello现在最多支持按十个标签排序。小改进-按截止日期排序时,没有截止日期的卡片将被忽略。固定的错误-卡更新后列表不再求助。修正了与“ Scrum for Trello”扩展名兼容的问题现在可以打开/关闭每个功能错误修复:*修正了带有错误的asc / desc图标的问题*现在忽略了“ Scrum for Trello”中的所有要点*修正了另一个与之相关的问题新的Trello html / css更改*修复了与新的Trello外观相关的问题*修复了由于Chrome安全策略更改而导致的问题 *修复了由于Trello标记的更改而导致的错误 *修正了与转换和复制卡排序的错误 *修复了由于Trello标记更改而导致的另一个错误 Ultimello正在积极开发中,您可以在Trello板上关注进度,发布问题并为将来的功能投票。https://trello.com/board/ultimello-chrome-extension-development/518d557d6768027421000556 Ultimello付出了巨大的努力,因此,如果您发现了一些问题,请不要着急使用负面评分,而要让我知道它们。请继续关注,并随时通过yazla86@gmail.com上的电子邮件表达您的想法。还有很多好吃的东西要来!请在使用Ultimello之前,按照选项页上的说明进行操作。 支持语言:English (United States)
DB2 求助编辑百科名片 DB2是IBM出口的一系列关系型数据库管理系统,分别在不同的操作系统平台上服务。虽然DB2产品是基于UNIX的系统和个人计算机操作系统,在基于UNIX系统和微软在windows系统下的Access方面,DB2追寻了ORACLE的数据库产品。 目录 综述 DB2的历史 DB2的数据复制与迁移方法 DB2数据库常用命令集 DB2 Express-C 精简版 MD游戏DB2 展开 编辑本段综述 简介   IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。 它以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。 DB2(3张)   除了它可以提供主流的OS/390和VM操作系统,以及中等规模的AS/400系统之外,IBM还提供了跨平台(包括基于UNIX的LINUX,HP-UX,SunSolaris,以及SCOUnixWare;还有用于个人电脑的OS/2操作系统,以及微软的Windows 2000和其早期的系统)的DB2产品。DB2数据库可以通过使用微软的开放数据库连接(ODBC)接口,Java数据库连接(JDBC)接口,或者CORBA接口代理被任何的应用程序访问。   2006年7月14日,IBM全球同步发布了一款具有划时代意义的数据库产品——DB2 9(“DB2”是IBM数据库产品系列的名称)。而这款新品最大特点即是率先实现了可扩展标记语言(XML)和关系数据间的无缝交互,而无需考虑数据的格式、平台或位置。 DB2的前世今生和未来   对于每个最终站在奖台上泪水盈面的奥运冠军来说,为此刻他或她也许已经付出了5年甚至10年的艰苦努力。相比这些人类的冠军们,这个世界还有另外一种意义上的冠军,它们虽没有泪水,却依然在历史上留下了非凡的轨迹—DB2就是这类冠军中的一员。这个数据库领域里当之无愧的冠军,已用了足足25年来描绘它的轨迹。
智能小区报警系统方案设计 一、 好士佳城市安全防范网络系统简介 随着微电子技术与网络技术的飞速发展,人们对于居住环境的安全、方便、舒适提出了 越来越高的要求,因此智能化住宅就随之出现,也随着改革开放的深入和市场经济的迅 速发展、提高,城市外来流动人口大量增加,带来许多不安定因素,刑事案件特别是入 室盗窃、抢劫居高不下,因此家庭智能安全防范系统是智能化小区建设中不可缺少的一 项,而以往的做法是安装防盗门、防盗网,但普遍存在有碍美观,不符合防火要求,而 且不能有效地防止犯罪分子对住宅的入侵,故利用高科技的电子防盗报警系统也就应运 而生。目前我国大多数家庭都是双职工,当发生警情时,不能有效地处理,因此,必须 设立小区报警中心,在发生警情时,除了现场报警外,同时还向小区的保安中心进行电 脑联网报警,以便警情得到迅速处理。针对以上情况,现由香港安时科技有限公司和好 士佳电器有限公司吸取国内外安防产品的优点取长补短,联合研制开发出适合我国国情 的防盗报警网络系统,该系统具有性能稳定、价格适中、系统容量大、误报率极低、施 工操作方便等优点,是一套先进的电子科技安防系统,是入室盗窃、抢劫等犯罪分子的 克星,也是一套预防火灾、气体泄漏的先进仪器,同时是在发生意外情况时紧急求助的 最好帮手,它改善了传统的防范设施只防不报的弱点,给小区带来全新的安全概念,建 立一个可靠和开放的安全环境。该系统经公安部安全技术防范产品检测中心检验,通过 并取得生产销售许可证,被广州市政府列为2000年度拆除防盗网的推荐安保产品。 二、 好士佳系统功能简介 本系统是采用最新数码技术、微机处理技术、无线遥控技术的高智能、全方位安保系统 。本产品安全可靠、安装方便、振作简单,可匹配连接各种传感器、烟感器、泄漏探测 器等探头。并可联成网络,方便集中防范管理,是盗警、火警、气体泄漏、紧急求助等 事作能及时处理解决的最佳卫士。 用户通过无线遥控器设置主机的状态: 有人在家时,可设置门钟状态。如有人进入触发传感器,主机发出门钟声,此时不拔号 ;也可设置为在家周边防范状态,此时主机只接收门窗等周边传感器信号。室内传感器 处于非工作状态。如周边有人非法闯入,主机立即向外报警。 当用户离家时,设置为离家设防状态。此时主机接收所有传感器传来的信号,如有非法 进入。主机将自动向外报警。报警中心在电子地图上自动显示出警情方位,信息栏显示 用户户主名、家庭成员、住址、电话等详细信息。让派出所能迅速出警,以最快的速度 赶往现场。 遥控器上记有紧急报警功能键,无论主机处于布防或撤防状态,当用户触发此键时,主 机立即向接警中心发出求救信号。 用户可选择适当位置安装单个紧急按钮。其状态与功能同遥控器上的报警键相同(用户 自选)。 主机留有专用接口,可接上煤气泄漏传感器(用户自选),无论主机处于何种状态,当 煤气浓度超过安全系数时,主机立即将报警信号发出给接警中心。 报警监听。当报警触发后报警器自动拔通主人话机,此时主人可用*键对室内情况进行监 听。 主机设置有报警拔号5个号码,用户可设置要求通知的手机、电话、传呼机号码,多方位 的通知接警中心或用户本人。 小区或集中用户可选择报警直拔管理中心或门卫电话,设置语音提示用户详细地址,以 便急时处理。 三、"好士佳"防盗报警系统能达到以下要求 广泛性——使小区内每个家庭都能得到保护。(防止盗窃、火警气体泄漏等。) 实用性——每个家庭的防范系统能在实际可能发生受侵的情况及时自动报警,并且操作简 便,环节少,易学易用。 系统性——在案情发生时,除能现场报警外,也能自动拨打用户的指定手机,固定电话或 将警情传到小区的保安报警中心。 可靠性——该系统结构设计合理,产品耐用、质量可靠、误报率极低。 投资可行性——该系统性价比高,与国内同类产品相比,功能齐全。尤其比美国C K、以 色列的乐可利等系统的处警方式更符合国情,而价格更经济合理。 四、"好士佳"防盗报警系统特点 系统容量大——网络容纳十万以上住户信息。 安装方便——该系统基本采用不布线安装,不影响房屋结构和内部装修。 功能强大——设有八个防区布控,进出延时可调。远程监听,异地布防设防、电话线防剪 、防盗打等功能、兼容性强、可兼容各类型有线、无线探头,集防盗、紧急求助、防煤 气泄漏、火灾自动报警于一体。 系统先进——采用先进的后台电脑软件控制,功能齐全、强大,相当于小区中设立了110报 警中心。 五、"好士佳"防盗报警系统结构及其功能 由住户室内的智能防盗报警控制主机以无线电波的形式接收各红外探头,紧急求助按钮 、烟感探头,气体泄漏探头,门磁探头等发出的数据,分析后通过电话网络传送到小区 的电脑报警中心,通过电脑显示出该用户的所有资料(包括户主姓名、电话、地址), 发生何类型报警等级,并发出警号声以作提示保安人员

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧