数据库规范(20200521130229)

合集下载

数据库规则(3篇)

数据库规则(3篇)

第1篇一、总则1. 为规范数据库的使用和管理,确保数据库的安全、可靠、高效运行,特制定本规则。

2. 本规则适用于所有使用数据库的单位和个人,包括但不限于数据库管理员、开发人员、运维人员等。

3. 使用数据库的单位和个人应严格遵守本规则,切实履行职责,确保数据库的正常运行。

二、数据库分类与命名1. 数据库分为生产库、测试库、开发库和备份库等类型。

2. 数据库命名规则如下:a. 生产库:以“生产”为前缀,例如“生产-销售数据库”。

b. 测试库:以“测试”为前缀,例如“测试-财务数据库”。

c. 开发库:以“开发”为前缀,例如“开发-人事数据库”。

d. 备份库:以“备份”为前缀,例如“备份-全库备份”。

三、权限管理1. 数据库权限分为系统权限和数据权限。

2. 系统权限包括:a. 数据库管理员权限:负责数据库的创建、删除、备份、恢复等操作。

b. 数据库用户权限:负责对数据库进行查询、插入、更新、删除等操作。

3. 数据权限包括:a. 全局权限:对所有数据库的查询、插入、更新、删除等操作。

b. 表权限:对特定表的查询、插入、更新、删除等操作。

4. 权限分配原则:a. 最小权限原则:授予用户完成工作任务所必需的最小权限。

b. 分级授权原则:根据用户职责和权限需求,逐级授权。

四、数据备份与恢复1. 数据备份分为全库备份和增量备份。

2. 全库备份:每月进行一次,存储在备份库中。

3. 增量备份:每天进行一次,存储在备份库中。

4. 数据恢复原则:a. 及时性:在发现数据丢失或损坏时,尽快进行恢复。

b. 可靠性:确保恢复后的数据与原始数据一致。

五、数据安全与防护1. 数据库安全防护措施:a. 设置强密码:管理员和用户密码应包含大小写字母、数字和特殊字符。

b. 定期更换密码:管理员和用户密码应定期更换。

c. 数据加密:对敏感数据进行加密存储。

d. 访问控制:严格控制数据库访问权限。

e. 防火墙:部署防火墙,防止外部攻击。

2. 数据库安全检查:a. 定期检查数据库安全漏洞。

数据库规范

数据库规范

数据库规范数据库规范数据库规范是指对数据库设计和使用的一系列规则和建议,以确保数据库的一致性、可靠性和有效性。

以下是数据库规范的一些建议,以帮助用户设计和使用高品质的数据库。

1. 数据库设计规范- 数据库设计应该符合正规化理论,以避免数据冗余和不一致。

- 数据表应该具有清晰、准确的字段定义,避免使用模糊、多义的字段名。

- 数据表应该具有适当的主键和外键,以保证数据的完整性和一致性。

- 数据库应该具有适当的索引,以提升查询和查询性能。

- 数据库设计应该具备可扩展性,以满足未来的需求变化。

- 数据库设计应该考虑安全性和权限控制,以保护敏感数据。

2. 数据库操作规范- 数据库操作应该使用正确的SQL语法和语义,避免不规范的查询和操作。

- 数据库操作应该遵循事务处理的原则,以保障数据的一致性和可靠性。

- 数据库操作应该进行适当的错误处理和异常处理,以提供良好的用户体验。

- 数据库操作应该进行性能优化,避免无效的查询和操作,提高查询和操作效率。

3. 数据库安全规范- 数据库应该采用强密码策略,用户密码应该使用复杂度高的密码,并要求定期更改密码。

- 数据库应该限制对敏感数据的访问权限,只允许授权用户访问,并进行必要的审计记录。

- 数据库应该定期进行备份和恢复测试,以防止数据丢失和灾难恢复。

- 数据库应该进行漏洞扫描和安全评估,及时修复和更新数据库软件和补丁。

4. 数据库维护规范- 数据库应该定期进行维护和优化,包括索引重建、碎片整理、统计信息更新等操作。

- 数据库应该定期进行性能监控和调优,以提升数据库的响应速度和处理能力。

- 数据库应该进行定期的容量规划和增长预测,以满足未来的需求增长。

总结:数据库规范是确保数据库设计和使用的一系列规则和建议,以最大程度地保证数据库的一致性、可靠性和效率。

通过遵循数据库规范,可以帮助用户设计和使用高品质的数据库,提高数据管理和应用的效果。

同时,数据库规范还能够提高数据库的安全性,保护数据免受未授权访问和损坏的风险。

数据库管理规范

数据库管理规范

数据库管理规范一、概述数据库管理规范是为了保证数据库系统的高效、安全、可靠运行而制定的一系列规范和标准。

本文将从数据库设计、权限管理、备份与恢复、性能优化等方面详细介绍数据库管理规范的要求和操作流程。

二、数据库设计规范1. 数据库命名规范- 数据库名应简洁明了,能够准确描述其所存储的数据内容。

- 数据库名使用小写字母,可以使用下划线作为分隔符。

- 避免使用数据库系统保留的关键字作为数据库名。

2. 表设计规范- 表名应具有描述性,能够清晰表达其所存储数据的含义。

- 表名使用小写字母,可以使用下划线作为分隔符。

- 表名避免使用数据库系统保留的关键字作为表名。

- 表中的字段名应具有描述性,能够清晰表达字段所存储数据的含义。

- 字段名使用小写字母,可以使用下划线作为分隔符。

- 字段名避免使用数据库系统保留的关键字作为字段名。

3. 数据类型选择- 根据数据的实际需求,选择合适的数据类型,避免浪费存储空间和性能。

- 避免使用过长的数据类型,例如使用INT代替BIGINT等。

4. 索引规范- 根据查询需求和数据量,合理选择索引类型和字段。

- 避免过多的索引,以免影响插入和更新操作的性能。

- 定期检查和优化索引,确保其有效性和性能。

三、权限管理规范1. 用户权限管理- 为每个用户分配最小权限原则,避免用户拥有不必要的权限。

- 定期审查和更新用户权限,确保权限的合理性和安全性。

- 禁止使用默认或弱密码,要求用户使用强密码并定期更换。

2. 角色权限管理- 根据用户的职责和权限需求,设定不同的角色。

- 角色应具有清晰的权限范围和权限等级,避免权限冲突和滥用。

- 定期审查和更新角色权限,确保权限的合理性和安全性。

3. 数据库审计- 启用数据库审计功能,记录用户的操作和访问日志。

- 定期审查和分析审计日志,发现异常操作和安全风险。

四、备份与恢复规范1. 定期备份- 根据业务需求和数据变更频率,制定合理的备份策略。

- 定期对数据库进行全量备份和增量备份,确保数据的完整性和可恢复性。

数据库标准规范(两篇)2024

数据库标准规范(两篇)2024

数据库标准规范(二)引言:数据库是当代信息系统中关键的存储和管理数据的工具,数据库标准规范的制定对于确保数据的一致性、完整性和可靠性至关重要。

本文将详细阐述数据库标准规范的五个大点,包括数据库设计、数据模型、数据操作、数据存储和数据安全。

概述:在数据库标准规范中,数据库设计是基础,决定了整个数据库系统的架构和功能。

数据模型定义了数据的结构和属性,数据操作确定了对数据库的增删改查操作,数据存储指定了数据的物理存储方式,数据安全保证了数据库的安全性和可用性。

正文内容:一、数据库设计1. 定义数据库设计的目标和要求,包括数据的一致性、可扩展性和易用性。

2. 建立数据库的概念模型,包括实体关系模型、关系模型和层次模型。

3. 制定数据库设计的规范和准则,确保数据库结构的一致性和易维护性。

4. 设计数据库的表结构,包括表的字段、属性和约束等。

5. 定义数据库的索引和视图,提高数据库的查询和操作效率。

二、数据模型1. 介绍常用的数据模型,包括层次模型、网络模型、关系模型和面向对象模型。

2. 选择合适的数据模型,根据数据库的特点和应用需求进行权衡。

3. 设计数据模型的实体和属性,确保数据的准确性和完整性。

4. 定义数据模型之间的关系,包括一对一、一对多和多对多关系。

5. 使用标准的建模工具和方法,对数据模型进行建模和验证。

三、数据操作1. 定义数据操作的目标和要求,包括数据的增加、删除、修改和查询。

2. 设计数据操作的接口和功能,提供简单易用的操作方式。

3. 制定数据操作的规范和约束,确保数据的一致性和安全性。

4. 优化数据操作的性能,提高查询和更新的效率。

5. 实现数据操作的事务管理和并发控制,确保数据的一致和可靠。

四、数据存储2. 设计数据的物理存储结构,包括数据文件、表空间和数据块等。

3. 制定数据存储的规范和准则,确保数据的安全和可靠。

4. 实施数据存储的备份和恢复策略,保护数据的完整性和可用性。

5. 优化数据存储的性能,提高数据访问的效率和响应速度。

(完整word版)数据库设计规范

(完整word版)数据库设计规范

保密级别:□绝密□机密□秘密■内部公开数据库设计规范变更记录目录1编写目的 (1)2数据库策略 (1)2.1数据库对象长度策略 (1)2.2数据完整性策略 (1)2.3规范化设计与性能之间的权衡策略 (1)2.4字段类型的定义与使用策略 (1)3命名规范 (3)3.1数据库命名规则 (3)3.2数据库对象命名的一般原则 (4)3.3表空间(Tablespace)命名规则 (4)3.4表(Table)命名规则 (4)3.5字段命名规则 (4)3.6视图(View)命名规则 (5)3.7序列(Sequence)命名规则 (5)3.8存储过程(Procedure)的命名规则 (5)3.9函数(Function)的命名规则 (5)3.10索引(Index) 命名规范 (5)3.11约束(Constraint) 命名规范 (5)4数据模型产出物规范 (5)附录A:xml文件使用说明 (7)附录B:保留关键字 (8)1编写目的本文的目的是提出针对Oracle数据库的设计规范,使利用Oracle数据库进行设计开发的系统严格遵守本规范的相关约定,建立统一规范、稳定、优化的数据模型。

参照以下原则进行数据库设计:1)方便业务功能实现、业务功能扩展;2)方便设计开发、增强系统的稳定性和可维护性;3)保证数据完整性和准确性;4)提高数据存储效率,在满足业务需求的前提下,使时间开销和空间开销达到优化平衡。

2数据库策略1)数据模型全局单一,所有公共的数据模型得到共享。

2)数据库建模要基于统一的元数据管理机制。

3)数据库设计遵循关系数据库的规范化理论。

4)OLTP与OLAP分开设计。

2.1数据库对象长度策略数据库字段的长度要考虑业务对象的类型、数据库所用字符集、时间格式来设定出相对准确的长度,满足业务需要,同时保证数据库的高效,避免不必要的开销。

2.2数据完整性策略1)必须遵循数据库设计的第二范式,根据业务需要尽量满足第三范式。

数据库管理规范

数据库管理规范

数据库管理规范一、引言数据库是组织和存储数据的关键组件,对于企业来说,数据库的管理至关重要。

良好的数据库管理规范能够提高数据库的性能、安全性和可靠性,保证数据的完整性和一致性,提升企业的运营效率。

本文将介绍数据库管理的一些基本规范和最佳实践。

二、命名规范1. 数据库命名规范- 数据库名称应具有描述性,能够清晰地表达其所存储的数据内容。

- 数据库名称应使用小写字母,并使用下划线(_)分隔单词,避免使用特殊字符和空格。

- 数据库名称不宜过长,建议控制在30个字符以内。

2. 表命名规范- 表名称应具有描述性,能够清晰地表达其所存储的数据内容。

- 表名称应使用小写字母,并使用下划线(_)分隔单词,避免使用特殊字符和空格。

- 表名称不宜过长,建议控制在30个字符以内。

- 表名中的单词应使用名词或名词短语,并尽量避免使用缩写。

3. 列命名规范- 列名称应具有描述性,能够清晰地表达其所存储的数据含义。

- 列名称应使用小写字母,并使用下划线(_)分隔单词,避免使用特殊字符和空格。

- 列名称不宜过长,建议控制在30个字符以内。

- 列名中的单词应使用名词或名词短语,并尽量避免使用缩写。

三、数据类型选择1. 字符串类型- 对于存储固定长度的字符串,应选择CHAR类型。

- 对于存储可变长度的字符串,应选择VARCHAR类型。

- 对于存储较长的字符串,应选择TEXT类型。

2. 数值类型- 对于存储整数,应选择INT类型。

- 对于存储小数,应选择DECIMAL或FLOAT类型。

3. 日期和时间类型- 对于存储日期,应选择DATE类型。

- 对于存储时间,应选择TIME类型。

- 对于存储日期和时间,应选择DATETIME类型。

4. 其他类型- 对于存储二进制数据,应选择BLOB类型。

- 对于存储布尔值,应选择BOOLEAN类型。

四、索引规范1. 索引的选择- 对于经常用于查询条件的列,应创建索引以提高查询性能。

- 对于唯一性约束的列,应创建唯一索引以保证数据的唯一性。

(完整版)数据库操作规范

(完整版)数据库操作规范

数据库操作规范1.总则1.1为规范我司信息系统的数据库管理和配置方法,保障信息系统稳定安全地运行,特制订本办法。

2.适用范围本规范中所定义的数据管理内容,特指存放在信息系统数据库中的数据,对于存放在其他介质的数据管理,参照相关管理办法执行。

3.数据库管理员主要职责3.1负责对数据库系统进行合理配置、测试、调整,最大限度地发挥设备资源优势。

负责数据库的安全运行。

3.2负责定期对所管辖的数据库系统的配置进行可用性、可靠性、性能以及安全检查。

3.3负责定期对所管辖的数据库系统的可用性、可靠性、性能以及安全的配置方法进行修订和完善。

3.4负责对所管辖的数据库系统运行过程中出现的问题及时处理解决。

3.5负责对所管辖数据库系统的数据一致性和完整性,并协助应用开发人员、使用操作等相关人员做好相关的配置、检查等工作。

3.6负责做好数据库系统及数据的备份和恢复工作。

4.数据库的日常管理工作4.1每日的管理工作4.1.1数据库管理员每天登录到服务器操作系统,进行如下检查工作:(1)检查所有的数据库实例状态以及所有与数据库相关的后台进程。

(2)检查数据库网络的连通与否,比如查看监听器(listener)的状态、网络能否ping通其它的计算机、应用系统的客户端能否连通服务器等等。

(3)检查磁盘空间的使用情况。

如果剩余的空间不足20%,需要删除不用的文件以释放空间。

(4)查看告警文件有无异常。

(5)根据数据库系统的特点,检查其它的日志文件中的内容,发现异常要及时加以处理。

(6)检查CPU、内存及IO等的状态。

(7)检查备份日志文件以及网络备份软件的监控记录,确定自动备份成功完成。

对于数据库的脱机备份,要确信备份是在数据库关闭之后才开始的,备份内容是否齐全。

运行在归档模式下的数据库,既要注意归档日志文件的清除,以免磁盘空间被占满,也必须注意归档日志文件的保留,以备恢复时使用。

(8)每天运行数据库管理控制台,检查数据存储空间的使用情况、剩余情况,必要时增大数据存储空间容量。

数据库管理规范

数据库管理规范

数据库管理规范一、引言数据库管理规范旨在确保数据库的安全性、稳定性和高效性。

本文档将详细介绍数据库管理的各个方面,包括数据库的命名规范、备份与恢复、权限管理、性能优化等内容。

二、数据库命名规范1. 数据库名称应具有描述性,能够清晰地反映其所存储的数据内容。

2. 数据库名称应使用小写字母,单词之间使用下划线分隔。

3. 数据库名称不应超过30个字符。

三、备份与恢复1. 定期备份数据库,确保数据的安全性。

2. 备份数据应存储在不同的位置,以防止单点故障。

3. 定期测试数据库备份的可用性,确保备份数据的完整性和可恢复性。

4. 定期进行数据库恢复测试,以验证数据库恢复的可行性。

四、权限管理1. 为每一个用户分配适当的权限,确保数据的安全性和隐私性。

2. 根据用户的职责和需求,限制其对数据库的访问权限。

3. 定期审计用户权限,及时发现并修复权限问题。

五、性能优化1. 定期监控数据库的性能,包括CPU利用率、内存使用率、磁盘IO等指标。

2. 根据监控结果,进行性能优化,如优化查询语句、索引优化等。

3. 定期清理无用的数据和索引,以提高数据库的性能。

六、安全性管理1. 使用强密码保护数据库账户,定期更新密码。

2. 定期更新数据库软件和补丁,确保数据库的安全性。

3. 限制数据库的物理访问权限,确保数据库服务器的安全性。

七、容灾与高可用1. 配置数据库的冗余备份,确保在主数据库故障时能够快速切换到备份数据库。

2. 配置数据库的集群,提供高可用性和负载均衡能力。

3. 定期进行容灾演练,验证容灾方案的可行性。

八、日志管理1. 启用数据库的日志功能,记录数据库的操作和变更。

2. 定期备份和归档数据库日志,以便于故障恢复和审计。

九、数据安全性1. 使用加密技术保护敏感数据,如用户密码、信用卡信息等。

2. 定期进行数据备份和恢复测试,确保数据的完整性和可用性。

十、版本控制1. 使用版本控制工具管理数据库的结构和脚本。

2. 定期备份数据库的结构和脚本,以便于版本回滚和代码管理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库相关规范1.使用utf8mb4字符集2.所有表、字段必须写清中文注释3.金额字段禁止使用小数存储(单位:分)4.禁止使用字段属性隐式转换(如:“WHERE ms_no = 1234”ms_no为字符串类型)5.尽量不使用负向查询(NOT、!=、<>、!<、!>、NOT IN、NOT L IKE等)6.禁止使用外键,如有完整性约束,需要应用程序控制7.禁止使用程序配置文件内的账号访问线上数据库8.禁止非DBA对线上数据库进行写操作9.开发、测试、线上环境分离10.所以提交的SQL语句必须经过测试11.禁止存储大文件或大照片12.库名、表名、字段名:小写,下划线分割,不超过32个字符,必须见名知意,禁止拼音英文混用13.表必须有主键14.必须把字段定义为NOT NULL并设置默认值15.必须使用varchar(20)来存储手机号16.单表索引控制在5个以内,单索引字段数不许超过5个a)索引的使用。

?(1) 尽量避免对索引列进行计算。

如计算较多,请提请管理员建立函数索引。

?(2) 尽量注意比较值与索引列数据类型的一致性。

?(3) 对于复合索引,SQL语句必须使用主索引列?(4) 索引中,尽量避免使用NULL。

?(5) 对于索引的比较,尽量避免使用NOT=(!=)?(6) 查询列和排序列与索引列次序保持一致(7) 禁止在更新频繁、区分度不高(如:性别)的字段上建立索引(8) 建立组合索引,必须把区分度高的字段放在前面17.禁止使用SELECT * ,只获取必要的字段18.禁止使用 INSERT INTO t_xxx VALUES(xxx),必须指定插入的列名19.禁止在WHERE条件的属性上使用函数或表达式20.禁止%开头的模糊查询21.禁止使用OR条件22.应用程序必须捕获SQL异常,并作出相应处理23.逻辑删除代替物理删除24.选择最有效的表名、查询条件顺序(从右到左)25.减少访问数据库的次数26.SQL中的关键字均使用大写字母,数据表最好起别名27.查询条件中“>=”代替“>”28.等号两边使用空格,逗号后使用空格29.多表操作必须使用别名30.整条语句必须写明注释,关键逻辑单独书写注释,说明算法、功能a)注释风格:注释单独成行、放在语句前面。

?(1) 应对不易理解的分支条件表达式加注释;?(2) 对重要的计算应说明其功能;?(3) 过长的函数实现,应将其语句按实现的功能分段加以概括性说明;?(4) 每条SQL语句均应有注释说明(表名、字段名)。

?(5) 常量及变量注释时,应注释被保存值的含义(必须),合法取值的范围(可选)?(6) 可采用单行/多行注释。

(-- 或 /* */ 方式)?31.尽量减少使用ORDER BY与GROUP BY操作影响性能32.所有写入上线程序的SQL语句,都必须提取保存并写清注释与所在位置模块33.创建共享SQL语句,并写清帮助文档34.避免变量循环赋值、使用索引设计准则1.应该对 WHERE 子句中经常使用的列创建索引2.应该对经常用于连接表的列创建索引3.应该对 ORDER BY 子句中经常使用的列创建索引4.不应该对小型的表(仅使用几个页的表)创建索引,这是因为完全表扫描操作可能比使用索引执行的查询快5.单表索引数不超过6个6.不要给选择性低的字段建单列索引7.充分利用唯一约束8.索引包含的字段不超过5个(包括include列)9.不要给选择性低的字段创建单列索引10.SQL SERVER对索引字段的选择性有要求,如果选择性太低SQLSERVER会放弃使用11.不适合创建索引的字段:性别、0/1、TRUE/FALSE12.适合创建索引的字段:ORDERID、UID等13.充分利用唯一索引14.唯一索引给SQL Server提供了确保某一列绝对没有重复值的信息,当查询分析器通过唯一索引查找到一条记录则会立刻退出,不会继续查找索引15.表索引数不超过6个16.表索引数不超过6个(这个规则只是携程DBA经过试验之后制定的。

)17.索引加快了查询速度,但是却会影响写入性能18.一个表的索引应该结合这个表相关的所有SQL综合创建,尽量合并19.组合索引的原则是,过滤性越好的字段越靠前20.索引过多不仅会增加编译时间,也会影响数据库选择最佳执行计划SQL查询1.禁止在数据库做复杂运算2.禁止使用SELECT *3.禁止在索引列上使用函数或计算4.禁止使用游标5.禁止使用触发器6.禁止在查询里指定索引7.变量/参数/关联字段类型必须与字段类型一致8.限制JOIN个数9.限制SQL语句长度及IN子句个数10.尽量避免大事务操作11.关闭影响的行计数信息返回12.使用UNION ALL替换UNION13.查询大量数据使用分页或TOP14.递归查询层级限制15.NOT EXISTS替代NOT IN16.尽量避免使用OR运算符17.增加事务异常处理机制禁止在数据库做复杂运算1.XML解析2.字符串相似性比较3.字符串搜索(Charindex)4.复杂运算在程序端完成5.禁止使用SELECT *6.减少内存消耗和网络带宽7.给查询优化器有机会从索引读取所需要的列8.表结构变化时容易引起查询出错禁止在索引列上使用函数或计算假设在字段Col1上建有一个索引,则下列场景将可以使用到索引:[Col1]=[Col1]>100[Col1] BETWEEN 0 AND 99[Col1] LIKE ‘abc%’[Col1] IN(2,3,5,7)LIKE查询的索引问题1.[Col1] like “abc%”? –index seek ?这个就用到了索引查询2.[Col1] like “%abc%”? –index scan ?而这个就并未用到索引查询3.[Col1] like “%abc”? –index scan 这个也并未用到索引查询我想从上而三个例子中,大家应该明白,最好不要在LIKE条件前面用模糊匹配,否则就用不到索引查询。

禁止使用游标关系数据库适合集合操作,也就是对由WHERE子句和选择列确定的结果集作集合操作,游标是提供的一个非集合操作的途径。

一般情况下,游标实现的功能往往相当于客户端的一个循环实现的功能。

游标是把结果集放在服务器内存,并通过循环一条一条处理记录,对数据库资源(特别是内存和锁资源)的消耗是非常大的。

禁止使用触发器触发器对应用不透明(应用层面都不知道会什么时候触发触发器,发生也也不知道,感觉莫名……)禁止在查询里指定索引With(index=XXX)(?在查询里我们指定索引一般都用With(index=XXX) ??)随着数据的变化查询语句指定的索引性能可能并不最佳索引对应用应是透明的,如指定的索引被删除将会导致查询报错,不利于排障新建的索引无法被应用立即使用,必须通过发布代码才能生效变量/参数/关联字段类型必须与字段类型一致避免类型转换额外消耗的CPU,引起的大表scan尤为严重限制JOIN个数单个SQL语句的表JOIN个数不能超过5个过多的JOIN个数会导致查询分析器走错执行计划过多JOIN在编译执行计划时消耗很大限制IN子句中条件个数在 IN 子句中包括数量非常多的值(数以千计)可能会消耗资源并返回错误 8623 或 8632,要求IN子句中条件个数限制在100个以内尽量避免大事务操作只在数据需要更新时开始事务,减少资源锁持有时间增加事务异常捕获预处理机制使用UNION ALL替换UNIONUNION会对SQL结果集去重排序,增加CPU、内存等消耗查询大量数据使用分页或TOP合理限制记录返回数,避免IO、网络带宽出现瓶颈递归查询层次限制来防止不合理的递归 CTE 进入无限循环使用 MAXRECURSION尽量避免使用OR运算符对于OR运算符,通常会使用全表扫描,考虑分解成多个查询用UNION/UNION ALL来实现,这里要确认查询能走到索引并返回较少的结果集增加事务异常处理机制应用程序做好意外处理,及时做Rollback。

设置连接属性“set xact_abort on”架构设计读写分离schema解耦数据生命周期读写分离设计之初就考虑读写分离,哪怕读写同一个库,有利于快速扩容按照读特征把读分为实时读和可延迟读分别对应到写库和读库读写分离应该考虑在读不可用情况下自动切换到写端Schema解耦禁止跨库JOIN数据生命周期根据数据的使用频繁度,对大表定期分库归档主库/归档库物理分离日志类型的表应分区或分表对于大的表格要进行分区,分区操作将表和索引分在多个分区,通过分区切换能够快速实现新旧分区替换,加快数据清理速度,大幅减少IO资源消耗频繁写入的表,需要分区或分表注释范例?过程注释:过程都以sp_开头,注意过程名称要符合命名要求?参数:p_变量名_in(传入)、p_变量名_out(传出)游标:cur_变量名/**************************************************************************?name:sp_Write_logparameter:p_textContext_in in varchar2 参数描述? parameter:p_textContext_out out varchar2 参数描述? create date:2003-04-1?creater:创建人员desc:过程总功能描述?****************************************************************************/?函数注释:函数以f开头,命名符合命名标准/**************************************************************************?name:f_Get_JobId?parameter:p_Name in varchar2 参数描述return number:返回值描述create date:2003-04-1?creater: 创建人员?desc:函数总功能描述?*********************************************************** *****************/视图注释?:视图以v开头,命名符合命名标准?/********************************************************** ****************name:v_Unit_Ms?parameter:p_Name in varchar2 参数描述? create date:2003-04-1?creater: 创建人员desc:视图描述*********************************************************** *****************/-- SQL语句编写格式样例-- 关键词换行,换行后空两个空格SELECT, -- 用户名称,,COUNT(1) trueworkload -- 单位缴费个人帐户个数FROMt_systemuserinfo ts, -- 医疗保险单位缴费表t_genworkflow tg,t_batch tb,t_companyinfotmp tc,(SELECT DISTINCTbatchid,companyid,userid,direction,fromwkfid,towkfidFROMT_WorkflowLogWHEREdotime BETWEEN '2008-09-02'AND '2008-09-03' -- 医疗保险缴费时间) AS twflWHERE=AND =AND =AND =AND = 1 -- 人员类别(1:正式员工)AND =GROUP BY,,,;。

相关文档
最新文档