首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
实际工作规范和案例框架
时间:
2015-04-22 00:17:04
阅读:
154
评论:
0
收藏:
0
[点我收藏+]
标签:
菜刀:
sql一刀剁了
整个模块丢弃了
调用次数少多了
排序不在需要了
大表砍成小表了
排重操作消失了
插入障碍小多了
迁移事情不做了
手术刀:
大表等于小表了
大表切成小表了
索引变身小表了
删除动作不做了
清表角度表换了
提交次数缩减了
迁移越来越快了
sql语句精简了
思路:
诊断
过程细化
找出细化项的主要矛盾
改进优化
理解需求
表明需求
隐藏需求
真正需求
设计
尽量不做事,甚至少做事。
选择相关工具,掌握相关技能
合理利用资源
规范:
数据库规范
学习规范
了解自己的职责
根据职责学习
提问必须有智慧
必须有动手试验的习惯
解决完问题必须总结
总结后学会分享
求助提问规范
描述不全不问:
什么点出故障
影响面多大
发生故障的时间点
产生的故障是否有规律
故障环境的访问方式
求助人的联系方式
用词准确:
现在运行多长,希望运行多长。
能搜不问
问过不问
sql提问要需求最小化
提供建表语句
插入部分数据
告诉我想要展现的结果
作业操作规范
数据库补丁投放
DML语句和DDL语句不能放在一起
一次只允许开一个数据库登录界面
PLSQL开发不允许保存密码自动登录
涉及需更新记录的表必须先备份
涉及对投放补丁完成时间有预计
数据库迁移备份
必须先明确备份迁移方式:
expdp/impdp
exp/imp
rman
others
明确导入导出表空间及磁盘空间大小
明确操作的库具体有多大
明确最大的对象有哪些
明确需要导出的有多大
明确需要完成的操作的规定时长
数据库误删除
确定被删除的类型
表被drop
记录被删除
表被truncate
明确误操作的时间点
当场发现
事后发现
对应策略
表被drop
用备份恢复
从回收站恢复
被多次drop从回收站中根据时间点恢复
记录被删除
用备份回鹘
闪回恢复
时间长无法闪回,且无备份,考虑手工插入恢复
表被truncate
用备份恢复
如果数据库有闪回,考虑闪回数据库
都不行的情况下,考虑手工插入记录恢复
诊断流程规范
完善的数据库问题分析步骤
动态
整体
主机动态情况检查
性能视图备份
获取基线
观察临时表空间和回滚段表空间情况
局部
通过主机进程pid查sql
观察当前数据库的版本和等待情况,sql基本情况
检查是否有过分提交的语句
检查系统的绑定变量
静态
整体
主机的静态情况检查
记录oracle所有的参数设置情况,并且检查是否归档
检查数据库表和索引是否存在并行度设置
检查是否有实效的索引
检查是否有显著未释放的高水平位的表
检查统计信息
自动统计信息收集情况
全局临时表的情况
awr/addm/ash/awrddrpt/awrsqrpt等方式观察数据库
获取数据库警告和监听日志
检查日志大小设置情况
检查最大的对象是哪些,表空间使用情况和回收站情况
局部
检查有哪些函数索引和位图索引
检查CACHE小于20的序列
分析需要跟踪的表和索引
查看表的大小情况
记录的大小
物理的大小
检查表结构的情况
查看表的信息
看分区表相关信息
查看索引情况
每张表对应多少索引
结构情况
查看索引列的信息
以下查出的都是分区索引
高效开发规范
SQL编写规范
单条sql不要超过100行
sql子查询嵌套不要超过3层
sql表关联需要考虑连接条件和限制条件的索引
尽量避免hint在代码中出现
同一个sql模块避免出现大量相似之处
用到并行需谨慎
尽量避免对列的运算
PLSQL编写规范
注释不少于代码的1/10
代码必须提供最小化测试案例与注释中
绑定变量
尽量使用批量提交
同一过程包中出现重复逻辑块需封装,统一调用
生产环境尽量使用包来封装过程和函数
动态SQL编写需记录真实SQL记录表中
合理设计规范
表规范
范式
绝大部分要求第三范式
适当考虑反范式
不同类表的差异
小表
一般要有主键
一般要有约束
尽量规划在同一个表空间
大表
尺寸超过10g需要考虑建分区
分区表中分区超过100要注意
大表尽量要有明确的数据保留策略
体现在设计文档
实现步骤体现在维护脚本中
体现在表注释中
大表坚决不允许有触发器
日志大表一般不设主键
中间表
内存表
全局临时表
表结构
注释
表必须要有注释
列尽量要有注释
列类型
避免使用LOGN字段
避免用CHA字段
列类型和值尽量匹配
时间取值放入date列
数据取值放入number列
字符串放入varchar2列
索引规范
用不上分区条件的局部索引不宜建
函数索引大多用于列运算,一般需要避免
位图索引遇到更新是噩梦,需要避免
外键未建索引将引发死锁,及影响表连接的性能
建联合索引需谨慎
要结合单列查询决定前缀
超过四个字段的联合索引要引起注意
范围查询影响组合索引
需要考虑回表因素
单表索引个数需要控制
索引超过5个以上
建后2个月内没有使用的
单表无任何索引需要重视
需要注意索引的实效情况
导致索引失效的因素
表移动表空间
分区表系列动作未加update global indexes
当前哪些索引实效
如何让索引生效
环境参数规范
数据库参数
SGA和PGA参数
OLTP应用是主机内存的80%分配数据库,其中SGA80%,PGA20%
OLAP应用是主机内存的80%分配数据库,其中SGA50%,PGA50%
Process和Session
Open_cursor
日志参数
日志文件个数
日志文件大小
是否归档
表空间规划
回滚表空间
自动管理
避免自动扩展
尽可能规划大
临时表空间
避免自动扩展
尽可能大
尽可能使用临时表空间组
业务表空间
控制个数,不超过6个为宜
尽量避免自动扩展,超阀值由监控来检查
根据自己的业务,固定表空间名
表空间需良好分类
参数配置表
业务数据表
历史记录表
表空间需合理命名
RAC系统
考虑通过TNS设置,将不同的业务代码部署在不同节点
不同节点用不同的回滚段和临时段
命名规范
表t_
视图v_
同义词s_
簇表c_
序列seq_
存储过程p_
函数f_
包pkg_
类typ_
外键fk_
主键pk_
唯一索引ux_
普通索引idx_
位图索引bx_
函数索引fx_
实际工作规范和案例框架
标签:
原文地址:http://www.cnblogs.com/alexweng/p/4445771.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!