预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

海量数据股票[浅谈海量数据处理技巧]摘要随着计算机应用系统不断的发展和完善,在各个领域产生了大量的数据,这些数据有着非常大的查询和分析价值。但随着数据量的增大,对于如何处理海量数据查询效率的问题,已经迫在眉睫。关键词海量数据;索引;分表存储中图分类号TP39文献标识码A文章编号1674-6708(2011)35-0170-021数据源的处理1.1文本数据导入到SQLServer数据库中主要有以下3种方式:方式一:通过程序从文本格式的数据中每整理出一条记录就执行insert语句插入到SQL数据库中;方式二:通过程序从文本格式的数据中整理出多条记录,再批量执行insert语句插入到SQL数据库中;方式三:编写存储过程,把这些从文本格式的数据通过存储过程导入到SQL数据库中。因为,存储过程提供了许多标准SQL语言中所没有的高级特性。其传递参数和执行逻辑表达式的功能,有助于应用程序设计者处理复杂任务。另外,这些过程存储在本地SQL服务器上,减少了执行该过程所需的网络传输带宽和执行时间。1.2数据库的设计1.2.1数据的分表存储在诸多应用系统的数据库中,例如,淘宝中店家的销售记录、买家的购买记录、北美贸易数据、医院医生的接诊数据等等,这些数据都有时间这一维度。以北美贸易数据为例,每月的北美海关贸易数据至少上百万条,一年的数据量至少在千万条以上。试想,假如系统要搜寻某个月份,某一HS号的产品出口信息,实际最后所得的数据量可能仅仅是几百条甚至更少只有几条。那么,如果从一百万条数据里搜寻这些,和在上千万条数据里搜寻,他们的返回结果时间必然是不同的。同样,修改记录时,数据库也是要先找到满足条件的记录,然后再进行update操作。所以,建议处理这类数据时候,应该按照时间这一维度,把数据分表存储。这样,可以减少大量的查询时间,数据量越庞大,效果越明显。1.2.2对海量数据进行分区操作对海量数据进行分区操作十分必要,例如针对按年份存取的数据,我们可以按年进行分区。例如SQLServer的数据库分区是将不同的数据存于不同的文件组下,而不同的文件组存于不同的磁盘分区下,这样将数据分散开,减小磁盘I/O,减小了系统负荷,而且还可以将日志、索引存放于不同的分区下。1.2.3创建索引1)索引的优点和局限索引可以提高查询的效率,但会降低dml操作的效率。所以建立索引时需要权衡。对于dml操作比较频繁的表,索引的个数不宜太多;2)什么样的列需要建索引经常用于查询、排序和分组的列(即经常在where、order或groupby子句中出现的列);3)主键索引和复合索引对于一张表的主键,系统会自动为其建立索引。如果一张表的几列经常同时作为查询条件,可为其建立复合索引;4)建立索引的语句createindexi_staffonstaff(empno);createindexi_agentonagent(empno,start_date);5)删除索引的语句dropindexI_staff;dropindexI_agent;6)索引的一些特点:(1)不同值较多的列上可建立检索,不同值少的列上则不要建。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就没必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。(2)如果在索引列上加表达式,则索引不能正常使用例如:b1是表b的索引列select*frombwhereb1/30