`
lexinquan
  • 浏览: 45831 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

数据库设计经验之--存储过程编写

阅读更多
1、数据库访问,最好全部固化成存储过程,保存在数据库中。同时尽量不使用trigger机制,难以管理及查错。

2、数据库操作时,仅选择有用列。除非有充足理由,不应该出现select * 的形式。

3、存储过程中尽量少用会引起存储过程重新编译的脚本,例如:动态sql语句、临时表、DDL语句。

4、以DB2为例,只读操作加上for fetch(read) only,如果只需要检索结果的几个,可以加上order by,fetch first x rows语句。

5、存储过程尽量精简,只实现简单IO,业务逻辑编放在中间层实现。

6、对于多个小更新操作,可以把所有更新放入一个批处理中,避免多次提交。

7、对于大事务,要尽快提交,提高数据库的并发性。与数据操作无关的语句不要放在事务中进行,特别是在开发分布式应用程序时尤其要注意。

8、每个数据库产品都会提供不同隔离级别的访问方式,以适应不同的并发性要求。在做实时查询时,如果可以,尽量用不加锁的访问方式,如SQLServer中的WITH(NOLOCK)表提示,DB2中的WITH UR,甚至可以把这当成编程规范(除非必须加锁时),提高并发性。

9、实时应用程序要加快用户操作响应,当数据库查询较慢时可以在界面有互动,或先返回部分数据给前台操作用户,或在数据库中先做一些预计算以备查询。

10、存储过程中尽量不要使用游标,使用集合操作方式。

11、存储过程中的SQL查询过滤条件太多,导致数据库负载增加,影响性能。可以适当考虑修改SQL查询,只通过索引访问数据库,再通过应用层进行条件过滤。

12、尽量少用模糊查询,由于like本身效率就比较低,应该尽量避免查询条件使用like。由于匹配算法的关系,模糊查询的字段长度越大,模糊查询效率越低。可通过索引访问数据后,再进行过滤。

13、考虑不等号操作符可能会引起全表扫描。可通过使用索引,将不等号改成用OR实现。如 id<>‘C’改为 id<’C’ or id>’C’,这样就能使用索引。(注:目前有些数据库查询优化器能自动优化,可以查看具体执行计划)

14、考虑 NOT IN 会导致产生笛卡尔积,使得访问效率低下。可以通过左外连接方式(Ta.C1 = Tb.C1)并加上 Tb.C1 is null 来处理。(注:目前有些数据库查询优化器能自动优化,可以查看具体执行计划)

15、如果怀疑SQL语句有性能问题,一定要用解释工具检查其执行成本。

16、注意进行数据库统计优化操作,有利于数据库查询优化器自动优化访问计划。
分享到:
评论

相关推荐

    数据库设计规范-编码规范.docx

    1 目的 为了统一公司软件开发的设计过程中关于数据库设计时的命名规范和具体工作时的编程规范,便于交流和维护,特制定此规范。 2 范围 本规范适用于全体开发人员,作用于软件项目开发的数据库设计、维护阶段。 3 ...

    实验六使用T-SQL编写存储过程访问数据库.doc.doc

    实验六使用T-SQL编写存储过程访问数据库

    数据库课程设计--仓库管理系统.doc

    华东交大理工学院 课 程 设 计 报 告 书 "所属课程名称 "数据库技术及应用(A)课程设计 " "题 目 "仓库管理系统 " " " " "院 (系) "电信分院 " "班 级 "10 通信 ( 1 )班 " "学 号 "。。。。。。。。。 " "学生...

    实验六使用T-SQL编写存储过程访问数据库(精品).doc

    实验六使用T-SQL编写存储过程访问数据库(精品)

    4数据库设计文档.doc

    4 5.1 表汇总 4 5.2 表[X]:[XXX表] 4 5.3 视图的设计 6 5.4 存储过程、函数及触发器的设计 6 6 安全性设计 6 6.1 防止用户直接操作数据库的方法 6 6.2 用户帐号密码的加密方法 7 6.3 角色与权限 7 7 优化 7 8 ...

    使用PLSQL编写存储过程访问数据库.doc

    使用PLSQL编写存储过程访问数据库.doc

    执法案件管理系统-数据库设计.docx

    执法案件管理系统-数据库设计 执法案件管理系统 数据库设计 执法案件管理系统-数据库设计全文共24页,当前为第1页。 执法案件管理系统-数据库设计全文共24页,当前为第2页。 执法案件管理系统-数据库设计全文共24页...

    高斯数据库存储过程模板

    包括存过日志加载,分区创建,已经存过的使用

    Cache 数据库相关----脚本MUMPS语言

    介绍MUMPS语言,好不容易找到的 MUMPS是Cache数据库的脚本语言 编写存储过程就是用的这个语言 对于学习Cache数据库是必不可少的工具语言 欢迎大家下载

    sybase数据库存储过程编写经验以及方法

    开发人员如果用到其他库的Table或View,务必在当前库中建立View来实现跨库操作,最好不要直接使用“databse.dbo.table_name”,...高程序运行效率,优化应用程序,在SP编写过程中应该注意SQL、索引、tempdb的使用规范。

    数据库原理与应用课程设计------多媒体教室申请管理系统

    如实列出对本次课程设计过程中参考了的书籍、网络文献或软件产品。 小型超市管理系统 1、项目计划 1.1系统开发目的 1.2背景说明 1.3项目确立 1.4应用范围 1.5定义 1.6参考资料 2、逻辑分析与详细分析 2.1系统功能...

    数据库设计参考模板.doc

    图表的名称 = "dg" + 图表内容标识(首字大写) 8、SQL语句的编写规范 数据库中存储过程和触发器中涉及大量的SQL语句,对SQL语句的编写规范如下: 关键字大写: 在SQL语句的编写中,凡是SQL语句的关键字一律大写,...

    实验9 存储过程的创建和使用

    1.编写带输入参数的存储过程proc_St:在查询分析器中创建一个存储过程,要求输入学号和姓名-----即要求以学号(@SSno)和姓名(@SSname)为存储过程的输入参数(存储过程的参数名必须以@开头,每个参数都应当有数据...

    存储过程编写经验和优化措施

    前言:在经过一段时间的存储过程开发之后,写下了一些开发时候的小结和经验与大家共享,希望对大家有益,主要是针对SQL Server数据库,但其它数据库应该有一些共性。

    数据库设计教案.docx

    数据库设计过程:需求分析(调研分析)、概念设计(E-R模型)、逻辑设计(转换成某种DBMS支持的逻辑数据模型,如关系型)、物理设计(在存储设备上选定存储结构和方法、一般由DBMS完成)、实施与运行维护。...

    数据库存储过程编写 参考手册

    数据库 存储过程编写 包括Sqlserver Mysql Oracle 等

    数据库课程设计设计指导书-最新.pdf

    在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按 质、按量完成课程设计。 二.适用专业 适用计算机科学与技术专业。 三.课程设计的一般步骤 本课程设计分五个阶段: 1)选题与搜集...

    数据库设计模板.docx

    4 逻辑设计 3 5 物理设计 4 5.1 表汇总 4 5.2 表[X]:[XXX表] 4 5.3 视图的设计 6 5.4 存储过程、函数及触发器的设计 6 6 安全性设计 6 6.1 防止用户直接操作数据库的方法 6 6.2 用户帐号密码的加密方法 7 6.3 角色...

    GBase8s 存储过程和触发器测试方法

    GBase8s 存储过程测试方法 -- '------------------ 存储过程--------------------------------' --在交互式sql交互式工具中执行,创建表 CREATE TABLE COM_T2 (C1 INT,C2 varchar2(10)); INSERT INTO COM_T2 VALUES...

    数据库课程设计-完整版-.pdf

    1 HUNAN CITY UNIVERSITY 数据库系统课程设计 设计题目: 宿舍管理信息系统 姓 名: 学 号: 专 业: 信息与计算科学 指导教师: 20 年 12 月 1 日 2 目 录 引言 3 一、人员分配 4 二、课程设计目的和要求 4 三、...

Global site tag (gtag.js) - Google Analytics