比如网站提供的功能是查询全国各地企业的信息,数据量可能是上千万条乃至上亿条的,以前因为从没遇到过这样的问题,所以也不知道该怎么解决!
目前,我能想到的也就是下面几条:
a.网站的后台数据录入,用C/S结构实现
b.细化这个最庞大的企业信息库,把他们按地区或者行业分别放入不同的表中,这样每个表的数据量相对就小点(疑惑中,大家看看这条行的通吗?)
c.买好的服务器,尽量宽的网络带宽
b.数据库大量应用索引、视图、存储过程等
d.优化程序但是我感觉访问查询这样庞大的数据库,速度肯定还是不行,还有哪些办法呢?
目前,我能想到的也就是下面几条:
a.网站的后台数据录入,用C/S结构实现
b.细化这个最庞大的企业信息库,把他们按地区或者行业分别放入不同的表中,这样每个表的数据量相对就小点(疑惑中,大家看看这条行的通吗?)
c.买好的服务器,尽量宽的网络带宽
b.数据库大量应用索引、视图、存储过程等
d.优化程序但是我感觉访问查询这样庞大的数据库,速度肯定还是不行,还有哪些办法呢?
sga的分配方面需要规划,根据实际情况进行调整
你要考虑的关键的因素是:数据结构(物理的存储),基于此就是SQL的优化(不管是存储过程还是应用程序),这是你考虑这个问题的最根本的两个点,
另:
减少表的行数,除了分表,分区表以外,有时候需要考虑尽量将数据放在一行里面(当然要满足逻辑需求),原因是因为数据库除了存储行记录以外,还要存储这行的控制信息,这很可能大大增加你的存储占用空间,成为你逻辑IO的瓶颈.....大可不必担心你的表列数过多
(2)按照数据量仔细规格数据库物理组织,适当规划表空间、数据段等
(3)尽量采用存储过程操作数据库,大量计算的不要放在数据库内
(4)程序设计时,尽量只取有用的数据,多次少量地取数据还有,你的数据库服务器最好有若干GB的内存,CPU够强劲
数据库性能影响因素:从大到小:
1、数据库设计;
2、良好的应用开发模式(SQL 优化);
3、利用STATSPACK report,TKPROF 等工具;
4、初始化参数的调整(ORACLE实例调整);
5、DBA的个人经验;
6、硬件和网络的优化;核心问题是前两条!
*存储过程
*DLL组件
*XML
分散数据库的i/o,把不同的应用放在不同的表空间上再把不同的表空间分布在不同的设备上。
对于select远远高于事务处理的应用系统,定期对被选择的大表执行 ANALYZE 操作,注意采用抽样估算方式。
另一方面,可以在应用设计中采用预处理技术,把报表的产生提前完成,把结果单独存放,选择时只选择以产生的结果,用空间换时间。另外也同意wd101的说法:雇用专家。
調整sga(根據實際情況)
將表進行分類﹐將大量順序讀的表放到一個盤上
大的以讀數據為主的表建索引﹐將索引文件與表文件放到不同的盤上
友联创新系统集成有限公司(北京上地)
在天津招聘
熟悉oracle 有相关工作经验 学过c语言
工作地点:天津
其它事项面谈
有意象请将简历发至
[email protected]
[email protected]
联系人:王先生