数据库访问性能优化

数据库访问性能优化

ID:42068665

大小:2.66 MB

页数:65页

时间:2019-09-07

数据库访问性能优化_第1页
数据库访问性能优化_第2页
数据库访问性能优化_第3页
数据库访问性能优化_第4页
数据库访问性能优化_第5页
资源描述:

《数据库访问性能优化》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据库管理系统授课教师吴涛第10章数据库访问性能优化10.1存储过程10.2索引2/8310.1存储过程10.1.1存储过程概念10.1.2创建和执行存储过程10.1.3从存储过程中返回数据10.1.4查看和维护存储过程10.1.5一些系统存储过程3/8310.1.1存储过程概念SQL语言是应用程序和数据库之间的主要编程接口。使用SQL语言编写访问数据库的代码时,可用两种方法存储和执行这些代码。在客户端存储代码,并创建向数据库服务器发送的SQL命令将SQL语句存储在数据库服务器端,然后由应用程序调用执行这些SQL语句。存储在数据库服务器端供客户端调

2、用执行的SQL语句就是存储过程。4/83存储过程功能接受输入参数并以输出参数的形式将多个值返回给调用者。包含执行数据库操作的语句。将查询语句执行结果返回到客户端内存中。5/83存储过程优点允许模块化程序设计只需创建一次并存储在数据库中,就可以在应用程序中反复调用该存储过程改善性能在创建存储过程时对代码进行分析和优化,并在第一次执行时进行语法检查和编译,将编译好的可执行代码存储在内存的一个专门缓冲区中,以后再执行此存储过程时,只需直接执行内存中的可执行代码即可。6/83存储过程优点(续)减少网络流量只需要一条执行存储过程的代码即可实现,因此,不再需要

3、在网络中传送大量的代码。可作为安全机制使用对于即使没有直接执行存储过程中的语句权限的用户,也可以授予他们执行该存储过程的权限。7/8310.1.2创建和执行存储过程创建存储过程CREATEPROC[EDURE]存储过程名[{@参数名数据类型}[=default][OUTPUT]][,…n]ASSQL语句[…n]执行存储过程[EXEC[UTE]]存储过程名[实参[,OUTPUT][,…n]]8/83示例例1.不带参数的存储过程。查询计算机系学生的考试情况,列出学生的姓名、课程名和考试成绩。CREATEPROCEDUREp_StudentGrade1A

4、SSELECTSname,Cname,GradeFROMStudentsINNERJOINSCONs.Sno=SC.SnoINNERJOINCoursecONc.Cno=sc.CnoWHEREDept='计算机系'执行此存储过程:EXECp_StudentGrade19/83示例例2.带输入参数的存储过程。查询某个指定系学生的考试情况,列出学生的姓名、所在系、课程名和考试成绩。CREATEPROCEDUREp_StudentGrade2@deptchar(20)ASSELECTSname,Dept,Cname,GradeFROMStudentsIN

5、NERJOINSCONs.Sno=SC.SnoINNERJOINCoursecONc.Cno=SC.CnoWHEREDept=@dept执行存储过程,查询信息管理系学生的修课情况EXECp_StudentGrade2'信息管理系'10/83示例例3.带多个输入参数并有默认值的存储过程:查询某个学生某门课程的考试成绩,课程的默认值为“java”。CREATEPROCEDUREp_StudentGrade3@snamechar(10),@cnamechar(20)='Java'ASSELECTSname,Cname,GradeFROMStudentsI

6、NNERJOINSCONs.Sno=SC.snoINNERJOINCoursecONc.Cno=SC.CnoWHEREsname=@snameANDcname=@cname11/83参数传递方式按参数位置传值实参的排列顺序与创建存储过程时参数定义的顺序一致。EXECp_StudentGrade3'吴宾','高等数学'按参数名传值在EXEC语句中,指明定义存储过程时指定的参数的名字以及参数的值。EXECp_StudentGrade3@sname='吴宾',@cname='高等数学'12/83如果在定义存储过程时为参数指定了默认值,则在执行存储过程时可

7、以不为有默认值的参数提供值。例如,执行例3的存储过程:EXECp_StudentGrade3'吴宾'相当于执行:EXECp_StudentGrade3'吴宾','Java'13/83示例例4.带输出参数的存储过程。统计全体学生人数,并将统计结果用输出参数返回。CREATEPROCEDUREp_Count@totalintOUTPUTAsSELECT@total=COUNT(*)FROMStudent执行此存储过程:DECLARE@resintEXECp_Count@resOUTPUTPRINT@res14/83示例例5.带输入参数和输出参数的存储过

8、程。统计指定课程(课程名)的平均成绩,并将统计结果用输出参数返回。CREATEPROCp_AvgGrade@cnchar(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。