经验分享--大表的设计方案总结

Oracle 大数据量的处理

文:第三开发部(内部使用,请勿外传)

在我们的数据库应用中,有些情况数据量会很大,单个表中每天超过千万条数据。为了使大量的数据在读写操作和查询中速度更快,采用了对表和索引进行分区的技术,以改善应用系统的性能。

根据不同的客户需求,制定有针对性的解决方案。

一、 案例:

案例一、集中日志

1、 需求描述,包括数据量,变动频率,在系统中主要的业务关联等; 集中日志最大的表有两张,slms_log_t和slms_cdr_t,但在各省的业务都没有用到slms_cdr_t,实际上只对slms_log_t进行操作。此表每天的入库数据量为1.7亿条(每天短信量大约6000条,日志是短信的2.5到2.8倍)以上(峰值入库每天10亿条,20xx年春节数据)。河南短信集中日志建4个数据库,相互独立,用数据库链(DB_link)做连接,入库数据在应用程序处做负载均衡。表中为动态数据,均为插入操作。对于日志查询的业务处理都是操作这张表。业务需要对此表源号码,目的号码,时间进行查询,所以在其必需的主要查询条件上都设立了索引。按日志时间对此表进行了分区。

2、 设计方案,包括表结构,索引,分区;

表结构与入库的日志结构对应,为分区表,根据入库日志的时间按天进行分区,并将到期的最早一天的分区删除。分区操作交由job执行,每天凌晨进行分区的添加与删除,默认创建此后5天的分区。根据查询用到的主要条件建立了分区索引。

3、 关注要点分析,给出设计的原因分析和解决问题的关键点;

入库数据在应用程序处做负载均衡,4台数据库均担。Slms_log_t表中的数据由cms实时入库,后期的统计表是在每个数据库上分别出一套中间表,然后到一台机器上进行汇总。不管是从效率上说还是业务上说,按时间分区和在这些字段上建立分区索引是必需的。

4、 总结,

将数据按时间进行分区,对关键字段做索引,对于提高效率还是有限的。在河南slms,尽管做了分区、索引,如果操作4个数据库联合查询,每个库数据量都大,查询速度并不算快。

案例二、梦网网关

1、 需求描述,包括数据量,变动频率,在系统中主要的业务关联等;

梦网中的大表有两张,表中的数据量不同省份数据不同,但基本都在千万级以上。表的变动频率很大,数据为动态数据,千万数据/天,但都是插入的操作。在系统中主要是通过表中的某几个固定字段来与其它的表做业务关联。一般情况下,会将大表中常用的几个字段数据保留到中间表中,尽量避免对大表的查询,虽然大表中有分区,但每天的业务量还是比较大的,如果索引建的不太合适,查询起来还是相当耗时的,将表中的数据导到中间表会减少很多查询所需要的时间,有利于提高查询的性能。

2、 设计方案,包括表结构,索引,分区;

表结构是根据入库的话单格式来给出的。两个表都为分区表,对时间做的范围分区,使同一天的数据插入到一个分区中,这样对某些数据进行操作时,可以只在该分区中进行。数据库中的分区每天会通过JOB来自动创建,一般情况下会提交创建出10个分区。分区的创建及保留天数是可配的。可以通过调整对应参数来控制。索引为分区索引,当索引出现问题时,可以单独对某一分区索引进行重建。注:创建大表的索引需要在大的数据量上做测试,否则创建出来的索引可能会对提高性能没有太大的帮助。数据最好是能够模拟现网的情况。之前对梦网的索引做过测试,一个是联合索引,一个是单独的索引,在家里测试的时候没有太大区别,但对现网数据进行测试的时候,耗时相差将近3倍。

3、 关注要点分析,给出设计的原因分析和解决问题的关键点;

将表设计为分区表主要是从效率上来考虑的,如果是对全表进行操作在数据库中耗时会比较长,也会对数据库中的回滚段有较大的要求。所以梦网一般情况下会尽量避免对大表做直接操作。

4、 总结,

梦网当前的查询主要是对中间表进行的,除非是要统计一些话单的详细情况才会到大表中进行。设计方案:将数据按日期来进行分区存储,查询的时候尽量使用分区字段把范围缩小。

但这种设计也有几个问题:(1)中间表的数据只能保留到前一天的数据,如果需要对表中的数据进行实时查询的,无法满足要求,还需要到大表中进行查询。因为为了提高利率的速度,中间表的数据都是在凌晨时通过JOB来大表中查出来的。

(2)当入库出现问题时,有可能造成中间表数据与大表中的数据不一致的情况,这样所有从中间表中取数据得到的统计结果也是不准确的。

案例三、短信网关

1、 需求描述,包括数据量,变动频率,在系统中主要的业务关联等;

行业网关有两张大表,分别存储MO,MT话单数据,表中数据量根据不同省份的业务量略有不同。数据为动态数据。MT话单数据目前现网存储占用200-300G,MO话单数据占用小于100G。MT话单数据每天插入数据量小于1千五百万条,以后随着业务量的增长还会增加。对大表主要是查询操作,查询话单详单等。

2、 设计方案,包括表结构,索引,分区;

两个表都为分区表,对时间做的范围分区,每天发送时间00:00:00至23:59:59的数据存储在一个分区内。索引为分区索引。数据库中的分区每天会通过JOB来自动创建及删除。分区的创建及保留天数是可配的。可以通过调整job内的参数来控制。

3、 关注要点分析,给出设计的原因分析和解决问题的关键点;

将表设计为分区表主要是从查询效率上来考虑,全表扫描耗时很长,加索引也基本不可用。目前只能按一天查询话单,将查询范围限制在一个分区内,再通过索引查询。查询详单使用了oracle的rowid,管理界面直接通过rowid查询话单内容。索引的设计主要基于管理界面的查询条件,将界面上必填的字段如时间,目的号码和特服号码作为索引字段。

4、 总结,

目前话单的查询都在大表中进行,每天00:00开始会有数据库job将大表数据汇总到几个不同级别的统计中间表,管理界面各统计模块只查询中间表不再关联大表。出现的问题与梦网也基本一样,没办法实时统计,只能统计前一天的内容。

二、 总结:

1、 使用分区的条件

所有的分区的逻辑属性是相同的,但他们的物理属性可以不同。

分区的剪枝 (Partition Pruning)

Oracle server 可以自动识别分区,根据select 语句所指定的选择条件,只查询有用的分区。如果语句的条件中对分区字段使用了函数,优化器则不能进行分区剪枝,但to_date函数除外。

2、 分区的优点

(1) 高可用性:如果表的一个分区由于系统故障而不能使用,表的其余好的分区仍然可以使用;

(2) 减少关闭时间:如果系统故障只影响表的一部分分区,那么只有这部分分区需 要修复,故能比整个大表修复花的时间更少;

(3) 维护轻松:对于大型的历史数据表,将其分区,分别管理和方便地添加和删除。;

(4) 均衡I/O:可以把表的不同分区分配到不同的磁盘来平衡I/O改善性能;

(5) 改善性能:对大表的查询、增加、修改等操作可以分解到表的不同分区来并行执行,可使运行速度更快;

(6) 基于分区的 join 操作,会提高查询性能

(7) 分区对用户透明,最终用户感觉不到分区的存在。

·增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用; ·维护方便:如果表的某个分区出现故障,需要修复数据只修复该分区即可; ·均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能; ·改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。

·可持续性:超过使用期限的数据可以进行drop分区操作。

3、 使用分区的注意事项:

·对于超大数据量,只做分区不做负载均摊,性能提高有限。

·对于出中间表的情况,如果原始表数据改变,中间表需要重新生成。 ·对于分区表的索引,如果单个分区上的索引失效,支持重建,但是不支持只在单个分区上建一个索引。分区索引必须在每个分区上都建索引,全局索引重建的时间与数据量有关。

三、 建议:

·对于话单表,日志表等数据量大需要定期删除过期数据的情况,建议使用分区表。

·对于数据量特别大的表,在应用程序阶段进行负载均衡是一个值得借鉴的方法。

·适当使用中间表,可以提高前台响应速度。

·在频繁使用的查询条件上,建分区索引。

·尽量使用分区内查询,避免跨分区查询。

·对于在没有索引的列上进行大范围的查询应该尽量避免。实在无法避免的情况,应该给用户一个提示信息。

四、 分区表的设计原则

1.表的大小:

当表的大小超过1.5GB-2GB,或对于在线交易系统,表的记录超过1000万,都应考虑对表进行分区。

2.数据访问特性:

基于表的大部分查询应用,只访问表中少量的数据。对于这样表进行分区,可充分利用分区排除无关数据查询的特性。

3.数据维护:

按时间段删除成批的数据,例如按月删除历史数据。对于这样的表需要考虑进行分区,以满足维护的需要。

4.数据备份和恢复:

按时间周期进行表空间的备份时,将分区与表空间建立对应关系。

5.只读数据:

如果一个表中大部分数据都是只读数据,通过对表进行分区,可将只读数据存储在只读表空间中,对于数据库的备份是非常有益的。

6.并行数据操作:

对于经常执行并行操作(如Parallel Insert,Parallel Update等)的表应考虑进行分区。

7.表的可用性:

当对表的部分数据可用性要求很高时,应考虑进行表分区。

8.在设计分区表的时候需要确定分区目标的优先级,主要有以下几个方面。 高性能、实施难度、高可用性(故障屏蔽能力)、数据维护能力 。

具体需要根据实际应用情况来确定到底按照哪几列来进行分区。

 

第二篇:大学物理课程教学设计方案总结

《大学物理》课程教学设计方案总结

一、课程的地位和任务

物理学是研究物质最基本,最普遍的运动形式及其相互转化规律的科学.物理学的研究对象具有极大的普遍性,它的基本理论渗透在自然科学的一切领域中,应用于生产技术的各个部门,它是自然科学的许多领域和工程技术的基础.因此,我院将"大学物理"列为各专业的一门必修的统设公共基础课. 课程的教学目的和任务是:

1.使学生对物理学的基本内容有较全面,较系统的认识.即学生通过学习物理学的基本概念,基本规律和实验课教学,了解自然界比较完整的物理图象,对物理学 所研究的各种运动形式以及它们之间的联系有较全面,较系统的认识,对物理学的当代发展和成就以及物理学在工程技术中的应用有初步的了解.

2.使学生在逻辑思维能力,抽象思维能力以及分析问题与解决问题的能力方面受到初步训练;使学生掌握基本物理实验技能;使学生对科学实验在物理学研究和发展中的作用有正确的认识.

3.提高学生的科学素养,帮助学生增强爱国主义观念并建立辩证唯物主义世界观.

4.为学生进一步学习专业知识,掌握工程技术以及今后知识更新打下必要的物理学基础.

二、课程的特点和教学要求

本课程是一门公共基础课.根据郑州电力职业技术学院培养应用型工程技术人员的培养目标,并参照近年来国际上物理学课程教学改革的趋势,本课程应具有以下的特点:

1.保持物理学的核心内容系统,完整;在讲授经典物理学的有关概念,规律时尽早介绍相应的近代物理学的观点;注意增强对当代发展较活跃的物理学领域的成果

和进展的介绍.

2.以中学物理为起点,注意知识衔接,避免简单重复.

3.本课程应安排在高等数学讲授完微商和不定积分的有关内容之后开始.应注意训练学生使用已掌握的高等数学知识来表达物理规律,分析和处理物理问题.对学生计算能力的要求应适当.

对本课程教学内容的基本要求分为以下三级:

1.深入理解,熟练掌握(属较高要求):规定为深入理解或熟练掌握的内容,要求学生在学习后能准确,完整地理解有关物理概念,规律的表达及其依据的现象,实验,能运用这些概念和规律,熟练地分析和解决一些问题,包括某些带有综合性的问题.

2.理解,掌握(属一般要求):规定为理解或掌握的内容,要求学生在学习后能依据这些概念和规律进行简单的分析,判断,能应用所学的公式进行计算.能正确地调整和操作有关的常用物理实验仪器,能应用处理实验数据的有关方法.

3.了解(属较低要求):规定为了解的内容,要求学生学习后知道其所涉及的物理现象,概念和规律,能识别其主要特征,方法和结论.对当代物理前沿专题部分标明的有关概念的定义能够识记.

三、学时与作业

本课程共需64学时

学时分配如下:

第八章静电场 26学时

第九章磁场 20学时

第十章电磁感应与电磁场 10学时

总复习 8学时

四、大学物理理论课的教学内容及基本要求

1.理论核心部分

教学内容

教学的基本要求

绪论物理学与我们周围的世界

周围世界中形形色色,绚丽多彩的物理现象物理学的研究对象物理学对提高科学素养和学习专业知识以及对现代化建设的作用

第八章静电场

8.1电场 库仑定律 电荷守恒定率

8.2电场强度及电场强度的计算

8.3E的通量

8.4高斯定理及应用

8.5静电场力做的功电势能

8.6电势与电势差

8.7电势的叠加原理及电势的计算

8.8电势梯度

8.9静电场中的导体

8.10电容 电容器

1.深入理解静电场,电场强度的概念和电场强度叠加原理.

2.理解电场力的功.理解电势能的概念.深入理解静电场中两点间的电势差及静电场中某一点的电势的概念.掌握简单情况下根据电场强度分布,用线积分计算电势差和电势分布的方法.

3.理解真空中静电场的高斯定理.掌握电荷分布具有对称性时应用高斯定理求解电场强度的基本方法.

4.理解静电场的环路定理.

5.理解电容的概念.掌握电容器的储能公式.理解真空中的电场能量密度公式.

第九章磁场

9.1磁感应强度 磁通量 磁场中的高斯定理

9.2毕奥―萨伐尔—拉普拉斯定律

9.3安培环路定理

9.4安培环路定理的应用

9.5磁场对运动电荷的作用及其应用

9.6安培定律

9.7载流平面线圈在磁场中所受的力矩

9.8磁力的功

1.了解磁现象的电本质.

2.理解磁场和磁感应强度的概念.

3.掌握毕奥―萨伐尔定律,能应用该定律求解通电长直导线周围和通电圆线圈轴线上的磁感应强度分布.

4.理解磁场的高斯定理和安培环路定理.

5.理解洛伦兹公式.掌握带电粒子垂直射入均匀磁场时作圆周运动的特点.了解霍耳效应的原理.掌握安培公式及计算磁场对通电直导线的作用力和对通电线圈的作用力矩的方法.

第十章电磁感应与电磁场

10.1电磁感应定律

10.2感应电动势

10.3自感和互感

10.4磁场能量

10.5位移电流

10.6麦克斯韦方程组的积分形式

1.理解感应电动势的概念.深入理解楞次定律和法拉第电磁感应定律,熟练掌握其应用.

2.理解电动势,动生电动势和感生电动势的概念.

3.了解互感,自感和涡电流的概念.

4.了解磁能密度公式.

5.了解麦克斯韦位移电流假设.

6.了解电磁场的概念.

7.了解真空中麦克斯韦方程组的积分形式.

2.大学物理专题讲座

大学物理专题讲座以物理学核心内容为基础.通过学习,要求学生对在当代获得重大发展的物理学的主要领域有所了解,对其中的重大成就的理论意义和应用有所了解.

大学物理专题讲座以定性介绍的内容为主,不强调教学推导.讲授中应将相应的研究,应用和发展和各种科技文献以及物理学史的有关内容有机地结合在一起.大学物理专题讲座包含的内容非常生动和丰富.因此,各教学班应认真组织学生收看电视课.

相关推荐