ITPUB??ì3
ITPUB论坛 » Web开发 » ASP.NET与AJAX » 一个非常非常大的表,如何操作提升性能??


标题: 一个非常非常大的表,如何操作提升性能??
离线 dotnetworker
一般会员



精华贴数 0
个人空间 0
技术积分 3866 (359)
社区积分 0 (1439940)
注册日期 2007-6-21
论坛徽章:33
开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠
生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠

发表于 2008-6-3 07:24 
一个非常非常大的表,如何操作提升性能??

假设有一个非大的表,数据非常的多,访问量也很大,但程序仅要求提供查询的功能(select)。

大家有什么好办法提升性能,以免频繁读取数据库?

我的想法是这样的:

在程序刚开始的时候,将这个表的所有记录都放到内存中去,就叫缓存吧。
然后,程序中所有的select操作,将直接从缓存中读取(内存读取快)。

疑问:
asp.net中有没有能够存储二维表格的类or对象,占用的是服务器的内存空间,并且能够被当作是数据控件的数据源?
如果有的话,能不能整个程序运行中只存在一个这样的对象,并对所有的客户端有效??
这个缓存应该在哪个位置(事件)中初始化、赋值?
当物理数据库中的数据发生了变化,在哪个位置(事件)中更新这个缓存比较合适?


只看该作者    顶部
离线 duxiaochu1972
资深会员



精华贴数 0
个人空间 0
技术积分 6346 (201)
社区积分 4 (18221)
注册日期 2006-7-13
论坛徽章:14
开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星
开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星生肖徽章2007版:鼠

发表于 2008-6-3 07:25 
用Index,View、Stored procedures可以缓解瓶颈吗?

建议做一个B+ tree,放在application["BTree"]中


只看该作者    顶部
离线 juanpeng
中级会员



精华贴数 0
个人空间 0
技术积分 4048 (343)
社区积分 0 (1438955)
注册日期 2007-6-21
论坛徽章:27
开发板块每日发贴之星开发板块每日发贴之星开发板块每日发贴之星生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠
生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠生肖徽章2007版:鼠

发表于 2008-6-3 07:25 
缓存有页面缓存( <%@ Page OutPut..%>) 和数据缓存(Cache["data"]=dt),可查相关资料,很简单

查询数据量大的表,首先是对表结构优化,如建立相关索引等


只看该作者    顶部
离线 lyong
中级会员



精华贴数 0
个人空间 0
技术积分 250 (7660)
社区积分 83 (3699)
注册日期 2004-11-6
论坛徽章:0
      
      

发表于 2008-6-18 19:06 
菜鸟的几点建议

数据库方面:

1 根据搜索的相关性建立非聚集索引.
2 采用存储过程对表进行读取操作.
3 增加数据库缓存的容量.
4 如果数据量很大建议根据日期进行分表

.net数据库逻辑方面
1 自己编写数据库缓存,可以是内存也可以是内存.
2 建立数据库类操作实现,如hebinit的框架可以参考.
数据显示方面
1 建议采用缓存显示,具体的含义就是只从缓存中读出需要显示的数据部分不要把整个select符合条件的全部加载到显示控件上.

如果以上的方法还是不能解决问题,那么说明你的数据库设计的不合理.


__________________
欢迎与我联系email:ly818919@sina.com我的plog :  http://blog.itpub.net/lyong我的主页:http://lyong.blogchina.com
只看该作者    顶部
离线 dahuzizyd
干死日本人


精华贴数 0
个人空间 0
技术积分 129 (13463)
社区积分 296 (1860)
注册日期 2008-6-6
论坛徽章:2
2008北京奥运纪念徽章:手球2008北京奥运纪念徽章:摔跤    
      

发表于 2008-6-25 09:25 
你的数据量非常大,全部缓存下来要吃多少内存,有计算过吗?


只看该作者    顶部
离线 阳光灵芝QQ


精华贴数 0
个人空间 0
技术积分 104 (16023)
社区积分 150 (2719)
注册日期 2008-7-23
论坛徽章:2
设计板块每日发贴之星生肖徽章2007版:鸡    
      

发表于 2008-8-8 13:17 
不是很懂的


只看该作者    顶部
离线 joe_xuqj
VIP会员



精华贴数 1
个人空间 0
技术积分 600 (3147)
社区积分 1 (37993)
注册日期 2005-5-31
论坛徽章:2
授权会员ITPUB新首页上线纪念徽章    
      

发表于 2008-8-11 23:27 


QUOTE:
原帖由 lyong 于 2008-6-18 19:06 发表
数据库方面:

1 根据搜索的相关性建立非聚集索引.
2 采用存储过程对表进行读取操作.
3 增加数据库缓存的容量.
4 如果数据量很大建议根据日期进行分表

.net数据库逻辑方面
1 自己编写数据库缓存,可以是内存也可以是内存.
2 建立数据库类操作实现,如hebinit的框架可以参考.
数据显示方面
1 建议采用缓存显示,具体的含义就是只从缓存中读出需要显示的数据部分不要把整个select符合条件的全部加载到显示控件上.

如果以上的方法还是不能解决问题,那么说明你的数据库设计的不合理.

很有道理


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问