欢迎来到天天文库
浏览记录
ID:42068665
大小:2.66 MB
页数:65页
时间:2019-09-07
《数据库访问性能优化》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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(
此文档下载收益归作者所有