数据库系统原理课程中性能调优实验的设计与实践

时间:2022-07-01 05:03:18

数据库系统原理课程中性能调优实验的设计与实践

摘要:论述了浙江大学计算机科学与技术学院采用数据库性能调优作为课程实验内容,分析讨论实验的过程、要求和内容安排等。性能调优是数据库系统应用开发的一项重要工作,具有实践性强、综合知识要求高等特点,非常适合于在探究型教学中作为实验内容。在本科生的数据库课程教学中进行了实践,取得了较好的效果。

关键词:数据库;性能调优;课程;教学;实验

数据库系统原理课程是计算机学科本科教学的一门非常重要的专业基础课,数据库系统不仅是最重要的系统软件之一,而且是应用信息系统开发的基石,它在计算机学科体系中占据重要地位。课程的教学目的是让学生对数据库系统的基本概念和原理有较全面的了解,同时具备使用数据库管理系统软件和开发数据库应用系统的能力。

数据库系统原理课程的教学内容主要包含关系数据模型、SQL语言、数据库设计、XML、数据存储、查询处理和事务管理等,是一门实践性很强的课程[1]。实验教学是数据库课程的重要组成部分,实验内容一般包括小型数据库管理系统实现、应用系统开发、SQL查询等,这些实验对于加深数据库基本概念和原理的理解,提高数据库应用开发能力具有重要的作用。

数据库性能调优是在实际应用开发中必然要遇到的一项工作,这项工作要求开发者既要具有广泛而深入的数据库原理和系统实现知识,又要有扎实的应用设计能力,熟悉操作系统和有关软硬件环境[2]。把性能调优作为数据库系统原理课程的一项综合性实验,可以帮助学生加深了解数据库基本原理,学会分析问题、解决问题的方法,提高计算机综合实践能力。

1性能调优实验的重要性

1) 性能调优实验符合数据库课程的实验要求。数据库系统原理课程内容丰富,只有通过动手实践才能真正深入地理解和运用这些概念和原理。课程实验的要求,一方面是深化对课程内容的理解,另一方面是提高综合运用并解决实际问题的能力。性能调优实验涉及到课程的各个方面,包括SQL语言、数据库设计、数据存储、查询处理和事务管理等,可以针对具体问题设计非常多的实验素材,结合知识点学习进度合理选择具体实验内容,在进度安排上也非常容易。另外,性能调优实验有难有易,可以根据不同的学生层次进行选择,一个学期中可以安排1个或若干个实验。 2) 性能调优是数据库学习的重要内容。性能调优本身是数据库应用开发的一项重要工作,它可以使数据库应用运行得更快更好,达到更高的吞吐量或更短的响应时间。数据库性能调优远不是按照有关指南通过短短几步就可以达到的,它需要扎实的理论基础和高超的问题处理技巧,要想获得满意的结果,调优者需要综合考虑缓冲池大小、数据结构、锁争用、应用程序需求等因素之间的复杂关联,另外到操作系统的配置甚至硬件,进行综合判断,涉及到数据库技术的方方面面。

3) 有利于提高学习的兴趣和动力。采用的性能调优实验都来自于实际应用开发,具有实践性强的特点,与实际应用相结合的实验过程可以让学生真正地投入到其中,感觉就像是自己动手解决一个实际问题,而不仅仅是为了应付课程作业,这种身临其境的体验可以极大地促进学生的学习兴趣,可以有效地促进探究型教学的开展。反过来,通过实验又可以让学生了解应用开发中所要解决的问题,从而更主动地学习课程内容。

4) 有利于培养学生独立的科研和工程能力,在教学改革中实现探究型教学。性能调优实验的过程是由教师提出问题并引导学生如何利用学到的知识来解决问题,学生通过自主地建立实验环境、测试运行、收集数据、综合分析、推导结论等环节来实现,实验的结果因人而异,并没有一个标准答案。在这个过程中,学生可以充分地体验到自主探索的乐趣,这是一种典型的探究型教学方法,可以让学生初步了解如何独立开展研究,解决实际问题。

2实验设计

2.1实验过程和要求

实验过程包括教师和学生两部分,如图1所示,教师部分以双线框表示,学生部分以单线框表示,整个过程分为实验内容选择、任务分配、实验方案设计、实验环境建立、测试运行、数据收集、分析总结、演示答辩、评价反馈、实验报告撰写、对提交的报告评分等环节。

实验的总体要求是学生按照教师给出的问题叙述,利用课程学习到的知识,在教师指导下自主完成实验方案设计和运行测试,提交的成果是综合实验报告,报告内容包括背景说明、方案设计、实验环境、测试过程、数据分析、实验结论、体会和收获等。实验一般要求利用常见的大型关系数据库,通过开发实现测试程序,调整参数,测试相关因素对数据库性能的影响。除了综合实验报告外,还可以要求学生提交详细的测试程序代码和文档。

2.2实验内容设计

以下给出几个具体的性能调优实验内容,进一步说明实验的要求,当然这样的实验有很多,可以结合具体的教学内容进行选择。

1) 缓冲区大小对数据库性能的影响。

数据缓冲区是在内存中设置的一块区域,为事务处理提供共享数据,引入缓冲区希望达到的一个主要目标就是减少对磁盘等二级存储的物理存取,事务在内存中读取数据的命中率很大程度上取决于缓冲区的大小,所以缓冲区大小是数据库系统的一个重要参数,是需要在应用系统运行中重点考虑的因素之一。在数据库实例运行的不同时期,数据缓冲区对物理内存的需求是不同的,当工作负载较大时,较小的数据缓冲区会造成频繁的I/O换页操作;当工作负载较小时,较大的数据缓冲区会造成物理内存的闲置,因此合理设置缓冲区大小,对数据库性能有较大影响。这个实验的目的是让学生充分理解缓冲区的概念和原理,并学会如何在实际应用中选择合理的缓冲区大小。

要求设计多组数据库应用,分别模拟高、低负载等多种情况,测试这些应用在不同大小缓冲区下的性能变化,性能指标可以选取吞吐量和响应时间。最好的策略是不断增加缓冲区大小,直到性能不再随缓冲区的增大而提高,从而找出最佳的缓冲区大小。实验可以采用Oracle、SQL Server或MySQL等数据库管理系统,这些数据库都提供了调整缓冲区大小的功能。

2) 规范化对查询性能的影响。

在数据库表设计中,要综合考虑应用需求、规范化、存储空间、事务处理性能等因素,一个良好的设计是多种因素的平衡。在表设计中规范化的要求一般是要达到3NF或BCNF,但有时逆规范化会带来性能的提升,例如以下两种表设计(表来自于TPC-C基准测试,做适当简化),设计1符合BCNF要求,占用存储空间少,但对于“查询在某城市购买的所有零件”,设计2在性能上要优于设计1。

模式设计1:

Customer(C_ID, C_NAME, C_CITY)

Order(O_ID, C_ID, O_DATE)

Order_Line(O_ID, ITEM_NAME, ITEM_QUANTITY, ITEM_AMOUT)

模式设计2:

Customer_Order(C_ID, C_NAME, C_CITY, O_ID, O_DATE, ITEM_NAME, ITEM_QUANTITY, ITEM_AMOUT)

实验的要求是针对不同的表设计,包括采用逆规范化、垂直划分等方法,考察在不同应用需求环境下,存储空间、性能等的差别,并在实践基础上总结出应用开发中表设计应该遵循的一些基本原则和方法。

3) 索引对查询性能的影响。

索引是提升数据库查询性能的重要手段。实验中,要求学生设计多种不同的索引场景来研究索引对数据库查询性能的影响:(1)没有索引的场景;(2)在查询属性上建立单属性索引的场景;(3)在查询语句涉及的多个属性上建立复合属性索引的场景。

学生可以通过数据库管理系统工具,考察在不同索引场景中的查询执行计划,并探究针对某个特定查询的优化索引方案。

3讨论分析

我们在数据库系统原理课程教学中进行了性能调优实验的实践,学生反映普遍很好,取得了预期的效果。根据在具体教学过程中反馈的意见,选择性能调优实验还需注意以下一些问题:

1) 性能调优实验较适合于计算机相关专业的本科生,尤其是开展探究型教学改革的课程。性能调优是数据库系统的一项复杂工作,涉及到多方面的知识,学生除掌握数据库基础知识外,还需对操作系统、硬件等有一定的了解,另外还要求学生有较高的实验方案设计能力,综合的计算机实践能力,不适合初学者。

2) 要结合学生的具体情况设计合适的性能优化实验,这需要教师对性能调优实验的难易程度有较高的掌控,充分了解学生的实际情况,包括已学习过的其他课程情况。性能调优实验有难有易,可以针对不同的学习层次和要求进行选择,做到循序渐进,既不能让学生感到问题太难而无所适从,又要有一定的难度,让学生通过实际操作提高计算机实践能力。

3) 教师在进行实验评分时要根据实验小组内每个成员的情况区分对待。由于性能调优实验需要发挥学生的综合能力,比较适合于2~4人的小组协作完成,同时还可以培养团队精神,但在评分时也要考虑到一个小组内不同人的贡献是不一样的,甚至还会出现有些小组的成员完全不出力的情况,防止这种情况的比较好的方法是教师在实验过程中要与学生密切沟通,了解真实情况。另外在实验过程中还要设置演示答辩环节,每个小组进行20分钟的汇报,讲解设计方案和结论,汇报分工和合作情况,教师进行质询和点评等,可以指定小组内某个成员回答,这样一方面通过反馈意见促进学生进一步完善实验成果,另一方面也减少抄袭、出工不出力的情况。

4结语

以前的数据库系统原理实验中,都较多地采用小型数据库管理系统实现、应用开发、SQL语言等实验,我们采用性能调优作为数据库课程实验,结合探究型教学方法,在实验过程中,学生在教师的指导下,独立设计实验方案,自主分析和解决问题,有效地提高了学生的综合动手能力,在实践教学中取得了很好的效果。进一步的工作包括优化实验过程、设计更多更完善的实验素材等。

参考文献:

[1] 王珊. 数据库课程教学改革:面向21世纪课程教材与国家精品课程[J]. 中国大学教学,2006(4):14-17.

[2] Dennis Shasha,Philippe Bonnet. Database Tuning Principles, Experiments, and Troubleshooting Techniques[M]. San Fransisco:Morgan Kaufmann Publishers Inc.,2002:1-8.

Design and Practice of Performance Tuning Experiments in the

Course of Database System Principles

LIN Huai-zhong, SUN Jian-ling, ZHOU Bo, CHEN ling

(College of Computer Science and Technology, Zhejiang University, Hangzhou 310027, China)

Abstract: Course experiment is a very important part in the course of database system principles. Database performance tuning experiments are adopted as the experimental content in the course teaching, and the experimental process, requirements, content arrangements are analyzed in the paper. Performance tuning is an important task in database system applications. The experiments require integrated computer skill and application practice, which are very suitable for the inquiry teaching in course of database system principles. The performance tuning experiments have been practiced in the undergraduate course teaching and the effect is very good.

Key words: database; performance turning; course; teaching; experiment

上一篇:计算机基础课程考试系统的开发与应用 下一篇:人工智能课程研究型实验教学的探索与实践