随笔分类 -  数据库开发

Oracle 索引扫描的五种类型
摘要:之前在讨论CBO和RBO的时候提到了索引扫描的几种类型。Oracle Optimizer CBO RBOhttp://blog.csdn.net/tianlesoftware/archive/2010/08/19/5824886.aspxOracle 索引 详解http://blog.csdn.net/tianlesoftware/archive/2010/03/05/5347098.aspxOracle Explain Planhttp://blog.csdn.net/tianlesoftware/archive/2010/08/20/5827245.aspx根据索引的类型与where限制条 阅读全文

posted @ 2013-11-12 23:00 heartstage 阅读(632) 评论(0) 推荐(0)

10种不可以使用关系数据库的场景
摘要:如何根据业务选择不同的技术架构,这是一个方向战略性问题,我在论支付宝与12306的业务类型可比性是从OO分析方式进行论证,但是更多时候我们很多人基本都是从关系数据库的设计开始项目的第一步,这篇文章:10件不可以使用关系数据库的场景:10 things never to do with a relational database | Application Development - InfoWorld也许能够对普通人起到方向提醒作用。大意翻译如下:1.搜索: 即使Oralce商店自己也不使用Oracle Text, 但是你会看到很多人使用复杂的like之类查询语句,这是非常丑陋的,兼容性相当差 阅读全文

posted @ 2013-11-11 23:12 heartstage 阅读(465) 评论(0) 推荐(0)

Oracle plsql
摘要:http://wenku.baidu.com/view/336e950b763231126edb11a6.htmlhttp://wenku.baidu.com/view/0b9beb6448d7c1c709a14504.htmlhttp://wenku.baidu.com/link?url=VMgKeSLbGfa_Levi-haFYyy0H9tpZH8PeUMHNx53ils1lI_KuQvm_-xoKC8U8CXHkau_nSzX6ScrwX29RJgsFVBJcCdwu7Ue0fqiInmdzkqhttp://wenku.baidu.com/link?url=mUs6qC4iq5xGX5X 阅读全文

posted @ 2013-11-10 13:56 heartstage 阅读(175) 评论(0) 推荐(0)

JDBC操作数据库的基本流程
摘要:所有的JDBC应用程序都具有下面的基本流程: 1、加载数据库驱动并建立到数据库的连接。 2、执行SQL语句。 3、处理结果。 4、从数据库断开连接释放资源。下面我们就来仔细看一看每一个步骤:其实按照上面所说每个阶段都可得单独拿出来写成一个独立的类方法文件。共别的应用来调用。1、加载数据库驱动并建立到数据库的连接:[html] view plaincopyprint?StringdriverName="com.mysql.jdbc.Driver";StringconnectiionString="jdbc:mysql://10.5.110.239:3306/test 阅读全文

posted @ 2013-11-10 13:42 heartstage 阅读(404) 评论(0) 推荐(0)

数据库调优2
摘要:1.引言 数据库调优可以使数据库应用运行得更快,它需要综合考虑各种复杂的因素。将数据均 匀分布在磁盘上可以提高I/O 利用率,提高数据的读写性能;适当程度的非规范化可以改善 系统查询性能;建立索引和编写高效的SQL 语句能有效避免低性能操作;通过锁的调优解 决并发控制方面的性能问题。数据库调优技术可以在不同的数据库系统中使用,它不必纠缠于复杂的公式和规则,然 而它需要对程序的应用、数据库管理系统、查询处理、并发控制、操作系统以及硬件有广泛 而深刻的理解。 2.计算机硬件调优 2.1 数据库对象的放置策略利用数据库分区技术,均匀地把数据分布在系统的磁盘中,平衡I/O 访问,避免I/O 瓶颈... 阅读全文

posted @ 2013-10-28 17:36 heartstage 阅读(170) 评论(0) 推荐(0)

数据库调优
摘要:1.引言 数据库调优可以使数据库应用运行得更快,它需要综合考虑各种复杂的因素。将数据均 匀分布在磁盘上可以提高I/O 利用率,提高数据的读写性能;适当程度的非规范化可以改善 系统查询性能;建立索引和编写高效的SQL 语句能有效避免低性能操作;通过锁的调优解 决并发控制方面的性能问题。数据库调优技术可以在不同的数据库系统中使用,它不必纠缠于复杂的公式和规则,然 而它需要对程序的应用、数据库管理系统、查询处理、并发控制、操作系统以及硬件有广泛 而深刻的理解。 2.计算机硬件调优 2.1 数据库对象的放置策略利用数据库分区技术,均匀地把数据分布在系统的磁盘中,平衡I/O 访问,避免I/O 瓶颈... 阅读全文

posted @ 2013-10-28 17:34 heartstage 阅读(560) 评论(0) 推荐(0)

SQL优化
摘要:从8i到10g,Oracle不断进化自己的SQL Tuning智能,一些秘籍级的优化口诀已经失效。 但我喜欢失效,不用记口诀,操个Toad for Oracle Xpert ,按照大方向舒舒服服的调优才是爱做的事情。1.Excution Plan Excution Plan是最基本的调优概念,不管你的调优吹得如何天花乱堕,结果还是要由Excution plan来显示Oracle 最终用什么索引、按什么顺序连接各表,Full Table Scan还是Access by Rowid Index,瓶颈在什么地方。如果没有它的指导,一切调优都是蒙的。2.Toad for Oracle Xpert用它来 阅读全文

posted @ 2013-10-28 17:32 heartstage 阅读(271) 评论(0) 推荐(0)

如何建立索引
摘要:关于如何建立索引,及哪些情况适合使用索引,哪些情况不适合使用索引,各种书籍资料有很多。但是最重要的原则是:实际测试。实践是检验真理的唯一标准。建立索引的时候,应进行如下测试:1 explain select语句,看看是否有使用到索引。2 运行update和insert操作,看看建立索引的负效应是否在可接受范围。3 务必在接近生产环境的数据规模下进行索引性能的测试。第三点尤为重要。因为在最近的项目优化过程中,发现:在某个字段上建立了索引之后,如果是select返回30条记录,建立索引之后,select时间降到原来的1/6。提高很明显。而在生产环境下,这个select需要返回的结果通常是上千(甚至 阅读全文

posted @ 2013-10-27 01:45 heartstage 阅读(751) 评论(0) 推荐(0)

数据库索引及基本优化入门
摘要:一前言 经常在面试中发现很多人工作了好多年了,项目经验也不少,用过各种数据库,但大都不知道这些SQL语句背后的基本原理,更别说数据库优化了。平时做项目只知道实现功能,懒得学习,懒得思考,懒得看书(其实本人也是,不要找借口说这是China国情,项目是给boss做的,但技术和成长是你自己的)。 本篇文章主要讲述数据库索引的基本原理,及基本的数据库优化的知识。所有知识均为本人自己学习的总结以及网络。此篇文章主要是为公司内部人员培训所用的,整理出来只是希望和大家分享、交流,因本人技术有限,若有遗漏、错误,希望多多指正、交流。二.基础知识2.1页 数据库文件存储是已页为存储单元的,一个页是8K(8192 阅读全文

posted @ 2013-10-27 01:37 heartstage 阅读(267) 评论(0) 推荐(0)

索引优化-2
摘要:序言 数据库的优化方法有很多种,在应用层来说,主要是基于索引的优化。本次秘笈根据实际的工作经验,在研发原来已有的方法的基础上,进行了一些扩充,总结了基于索引的SQL语句优化的降龙十八掌,希望有一天你能用其中一掌来驯服客服业务中横行的‘恶龙’ 总纲 建立必要的索引 这次传授的降龙十八掌,总纲只有一句话:建立必要的索引,这就是后面降龙十八掌的内功基础。这一点看似容易实际却很难。难就难在如何判断哪些索引是必要的,哪些又是不必要的。判断的最终标准是看这些索引是否对我们的数据库性能有所帮助。具体到方法上,就必须熟悉数据库应用程序中的所有SQL语句,从中统计出常用的可能对性能有影响的部分SQL,分析、归纳 阅读全文

posted @ 2013-10-27 01:36 heartstage 阅读(244) 评论(0) 推荐(0)

索引优化-1
摘要:查看查询语句的IO统计以及执行时间SET STATISTICS IO ONSELECT orderid,custid,empid,shipperid,orderdate,fillerFROM dbo.OrdersWHERE orderdate='20060101' AND orderdate @pagesize * (@pagenum-1)AND rownum '19991201' and date 2000 (25秒) select date,sum(amount) from record group by date(55秒) select count(*) 阅读全文

posted @ 2013-10-27 01:36 heartstage 阅读(274) 评论(0) 推荐(0)

聚簇索引(Clustered Index)和非聚簇索引 (Non- Clustered Index)
摘要:索引的重要性数据库性能优化中索引绝对是一个重量级的因素,可以说,索引使用不当,其它优化措施将毫无意义。聚簇索引(Clustered Index)和非聚簇索引(Non- Clustered Index)最通俗的解释是:聚簇索引的顺序就是数据的物理存储顺序,而对非聚簇索引的索引顺序与数据物理排列顺序无关。举例来说,你翻到新华字典的汉字“爬”那一页就是P开头的部分,这就是物理存储顺序(聚簇索引);而不用你到目录,找到汉字“爬”所在的页码,然后根据页码找到这个字(非聚簇索引)。下表给出了何时使用聚簇索引与非聚簇索引:动作使用聚簇索引使用非聚簇索引列经常被分组排序应应返回某范围内的数据应不应一个或极少不 阅读全文

posted @ 2013-10-27 01:20 heartstage 阅读(1062) 评论(0) 推荐(0)

Union与UnionAll
摘要:UNION指令的目的是将两个SQL语句的结果合并起来。从这个角度来看, 我们会产生这样的感觉,UNION跟JOIN似乎有些许类似,因为这两个指令都可以由多个表格中撷取资料。 UNION的一个限制是两个SQL语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。UNION只是将两个结果联结起来一起显示,并不是联结两个表。order by子句必须写在最后一个结果集里,并且其排序规则将改变操作后的排序结果。对于Union、Union All、Intersect、Minus都有效。其他的集合操作符,如Inters 阅读全文

posted @ 2013-10-26 14:40 heartstage 阅读(435) 评论(0) 推荐(0)

Oracle 后台进程 详细说明
摘要:一. 进程概述 先来看一下Oracle 11g 的架构图。 看起来比较模糊,我已经上传到了csdn 的下载。 是个pdf 文件, 2m 多。 那个看起来比较清楚。 也对每个进程做了解释。下载地址:Oracle 11g 架构图 from Oracle Universityhttp://download.csdn.net/source/2346700 进程是操作系统中的一种机制,它可执行一系列的操作步。在有些操作系统中使用作业(JOB)或任务(TASK)的术语。一个进程通常有它自己的专用存储区。ORACLE进程的体系结构设计使性能最大。 ORACLE实例有两种类型:单进程实例 和 多进程实例。 . 阅读全文

posted @ 2013-10-23 17:55 heartstage 阅读(2814) 评论(0) 推荐(0)

Oracle 后台进程
摘要:一、基本后台进程 1、数据库写入进程(DBWn): 数据库写入程序讲数据库告诉缓存区中的修改块写入数据文件。对于多数系统来说,一个数据库写入程序(DBW0)就已经足够,但是对于有大量修改数据任务的系统来说,就需要配置额外的进程(DBW1-DBW9)来改善写入的性能。初始化参数DB_WRITER_PROCESSES来指定DBWn的个数。 2、日志写入进程(LGWR): 日志写入进程将重做日志条目写入磁盘中。重做日志条目在系统全局区(SGA)的重做日志缓冲区中生成,而且LGWR按顺序将重做日志条目写入联机重做日志文件。如果有多个重做日志,则写入到重做日志写入联机重做日志的某个组中。 3、检验... 阅读全文

posted @ 2013-10-23 17:46 heartstage 阅读(432) 评论(0) 推荐(0)

关系数据库的几种设计范式介绍
摘要:1 第一范式(1NF) 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。例如,对于图3-2 中的员工信息表,不能将员工信息都放在一列中显示,也不能将其中的两列或多列在一列中显示;员工信息表的每一行只表示一个员工的信息,一个员工的 阅读全文

posted @ 2013-10-12 15:03 heartstage 阅读(199) 评论(0) 推荐(0)

面向程序员的数据库访问性能优化法
摘要:特别说明:1、本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识;2、本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也可以参考,但许多观点不适合于KV数据库或内存数据库或者是基于SSD技术的数据库;3、本文未深入数据库优化中最核心的执行计划分析技术。读者对像:开发人员:如果你是做数据库开发,那本文的内容非常适合,因为本文是从程序员的角度来谈数据库性能优化。架构师:如果你已经是数据库应用的架构师,那本文的知识你应该清楚90%,否则你可能是一个喜欢折腾的架构师。DBA(数据库管理员):大型数据库优化的知识非常复杂,本文只是从程序 阅读全文

posted @ 2013-10-12 14:55 heartstage 阅读(530) 评论(0) 推荐(0)

设计高效SQL: 一种视觉的方法
摘要:人们提到SQL时总是说,既然它是一种声明性语言,你不必告诉它如何获得你要的数据;你只需描述你要找的数据。确实如此:描述你的需求,你就会得到你想要的,但没人能保证能够以你预期的速度和成本获得。这就像在一个陌生的城市乘坐出租车。你可以告诉司机你要去哪儿,并且希望他会带你走最好的路线,但有时候时间和花费都超过了你的预期,除非你能告诉司机一些你想要他走的路线的相关信息。不管优化器多么优秀,一定会有某些情形存在,这时它的算法不能很好地满足你的需求。可能是统计信息造成的误导,或者优化器对于你的数据做了一些假定,而这些假定是错误的。如果发生了这样的事,你就需要找到一个方法能够给优化器一些指引。这篇文章描述了 阅读全文

posted @ 2013-10-12 10:54 heartstage 阅读(401) 评论(0) 推荐(0)

8种NoSql数据库系统对比
摘要:导读:Kristóf Kovács 是一位软件架构师和咨询顾问,他最近发布了一片对比各种类型NoSQL数据库的文章。虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破。这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举。但是NoSQL数据库之间的不同,远超过两 SQL数据库之间的差别。这意味着软件架构师更应该在项目开始时就选择好一个适合的 NoSQL数据库。针对这种情况,这里对 Cassandra、Mongodb、CouchDB、Redis、 Riak、Membase、Neo4j和HBase进行了比较:(编注1:NoSQL:是 阅读全文

posted @ 2013-10-11 17:20 heartstage 阅读(171) 评论(0) 推荐(0)

导航