- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库设计时注意的地方
替换LONG及LONG RAW类型 不能使用long 或者long raw类型,应以CLOB或BLOB来代替。 CHAR vs VARCHAR2 Char 定长,varchar2变长 Char(n)占据n个byte、varchar2(n)占据n+1个byte(字段长度),对于普通的zhs16gbk字符集,汉字是两个字符。 如果一个字段要么是null要么全是一个长度,使用char 字段长度 长度的大小应该以最接近实际情况为准。 经常会发现varchar2(512),varchar2(1024)甚至varchar2(4000)的字段,但实际的最大长度也就20多个汉字 Varchar2类型设的太长的弊端, 可能会需要更多的内存 迁移到其他类型的数据库时,无法实现,比如db2 Bitmap index 推荐不用 对性能基本上没好的影响。 可能导致dead lock(公安局项目碰到) 分页的总数问题1/3 分页处理的总数问题2/3 关于分页时总数的获得。 select t1.c1,t1.c2,t2.c3 from t1,t2 where t1.id=t2.id and t1.location=SHANGHAI; select count(*) from ( select t1.c1,t1.c2,t2.c3 from t1,t2 where t1.id=t2.id and t1.location=SHANGHAI ); 分页的总数问题 3/3 上面的查总数的语句可能可以修改如下 select count(*) from t1,t2 where t1.id=t2.id and t1.location=‘SHANGHAI’; 或者业务允许的话 select count(*) from t1 where t1.location=‘SHANGHAI’; 减少一次性从数据库select的数据量 曾发生过这样的案例,有同事在开发中一次性的将若干表的数据先拉到本地然后再处理,结果由于数据量过大,导致数据库负载很重,调查了1个月左右才找到问题所在。 极小的表的话,预取是没问题的,除此之外尽量减少一次性的预取操作。 SEQUENCE的cache Cache缺省情况下是20,也就是说该sequence每次将生成20个值存放到内存中,其他会话查询该sequence的时候就不用再生成了。 如果该sequence用的非常频繁的话,20就可能就不够了,从而导致sequence频繁的生成新值,这时候就会导致enq: SQ - contention 锁等待。可以增大该sequence的cache值。 Alter sequence seq_test cache 200; Create sequence seq_new cache 200; Cache值过大,数据库重启的时候,内存中已经生成的sequence值都将丢失,所以可能会导致sequence值更加不够连续 尽量减少视图的使用 特别是复杂的视图。Oracle对复杂的视图产生的执行计划不是最优的可能性很大,并且一旦有性能问题,对复杂视图的调优也极为困难。 本文目的 对一个已有的数据库进行大的改变基本上是伤筋动骨的。最好的方法是在准备开发数据库的时候预想到哪些需要注意的,这样以后的工作量会大大降低。 表空间设计 建专门的数据表空间跟索引表空间。也就是说数据跟索引分开。 根据应用分别建表空间 分区表所在的表空间一般也考虑单独放 创建表、索引的时候要带上表空间参数,以确定放到合适的表空间中。 特别注意,应用的对象一定不能放到system等系统表空间里。 某数据库表空间设计 某数据库表空间设计2 是否要分区 这是个很重要的问题 要把眼光放长远,当前某个表很小,那几年之后还会很小吗? 经验值,如果表的数据量不会超过1000万,可以不考虑分区。 如果表的历史数据会被清走,建分区表也是个不错的选择。 索引问题 经常用来作为查询条件并且不同值比较多的字段一定要考虑建索引。比如姓名、医保号,不能因为开发环境时数据量小就不管了。 复合索引的首列一定是那个不同值较多的那个。比如(姓名,性别),姓名一定要放到前面去。复合的主键首列问题要重点看,经常会看到复合的主键首字段都是地区之类不同值很少的。 分区表的索引,一般来说推荐local index,但会导致唯一性的索引必须包含分区字段 数据库分析 进入ORACLE10g之后,如果表未分析的话,oracle会主动估算一下数据分布情况再决定执行计划,由于估算的比例比较小,可能发生不准的情况。 要对数据库有定期分析的计划。 一个数据库分析计划的例子 SQL begin BEGIN DBMS_SCHEDULER.CREATE_JOB (
您可能关注的文档
- 郑州大学数学分析2001真题.doc
- 毕节地区苗学研究会毕节学院苗学研究组.doc
- 万有引力定律复习试卷.doc
- 10办公空间任务书.doc
- 和老师在一起1.ppt
- 工艺标准(室内排水).doc
- 第三章Java类、对象和接口.ppt
- 分销渠道的拓展模式.doc
- Motorola七种切换算法.doc
- 学生选科系统.doc
- 2025年跨境电商办公用品电商仓储物流物流配送网络布局优化报告.docx
- 2025年城市地下停车场光伏充电一体化在新能源产业政策支持下的发展.docx
- 工业机器人故障预测与健康维护策略在纺织服装行业的应用分析.docx
- 2025年火箭回收技术商业化应用经济效益评估报告.docx
- 2025年环卫车辆跨境无人驾驶测试场运营管理与商业模式创新研究.docx
- 2025年新能源电动巡逻车在城市安防领域的应用案例对比与启示总结.docx
- 2025年金融科技企业ESG绩效评估模型构建报告.docx
- 智能垃圾分类转运站建设与城市垃圾分类产业生态构建研究报告.docx
- 2025年跨境电商独立站流量优化与运营效率提升.docx
- XX行业文化旅游融合创新与发展报告.docx
文档评论(0)