利用sql语句解决简单的数学题
今天在解决一个问题的时候,发现自己的数学水平严重下降,现在是光有思路没有答案,自己简单算了几个答案,还是不太满意。最后尝试写了一个简单的pl/sql就解决了。问题是这样的,一个系统的处理结果会提供两个参数,用这个参数来衡量系统的情况,一个我们设为pass_ratio,另一个设为fail_ratio. 我们假设需要投入时间分别...
关于dblink锁定带来的问题
可能在一些分布式环境中,有一些数据访问都需要用到db link。从某种程度上来说dblink是很方便,但是从性能上来说还是有一些的隐患。如果两个环境之间的网络情况不好,也会无形中给系统带来更多的等待。
海量数据迁移之一个误操作的问题总结
在生产环境中的数据迁移还是很惊心动魄的,毕竟生产的数据不容许有任何潜在的问题,很小的问题也可能导致业务的终端,这个时候dba的角色是很重要的,如果dba犯了一个很细小的问题,在海量数据迁移中可能会导致灾难性的结果,所以今天和大家讨论一下关于由vi误操作导致的问题及总结。结合今天早上的例子来说明。目前生产环...
海量数据迁移之误操作和防范建议
在生产环境的数据迁移中,发生误操作真是很不愿意看到,今天自己总结了一下,从个人的经验来看有以下的几种操作或者是失误导致的问题。有一些错误自己已经犯过。外键不管是使用imp/impdp,sqlldr还是使用Insert append的方式导入数据,如果存在外键的约束,在数据导入前最好都设置为disable,要不数据导入的时候很可能发生...
通过vmstat的简单分析数据库操作
vmstat一直以来就是linux/unix中进行性能监控的利器,相比top来说它的监控更加系统级,更侧重于系统整体的情况。今天在学习vmstat的时候,突然想看看数据库中的并行对于系统级的影响到底有多紧密,自己简单测试了一下。首先来看看vmstat的命令的解释。可能大家并不陌生,如果需要每隔2秒,生成3次报告,可以使用vmstat 2...
生产环境sql语句调优实战第八篇
生产环境中的sql语句执行时间是很关键的性能指标,如果某个sql语句执行几个小时,优化以后几分钟,几十秒的话。会有很大的成就感,同时如果某个sql语句执行10秒,能够优化到1秒,感觉提升的幅度不是很大,但是如果这条语句执行极为频繁的话,那这种调优还是更有成就感的。执行时间是sql调优的一把标尺,但是同时也需要考虑到...
一条"简单"的sql语句和小兔子买面包的故事
有时候开发人员写sql语句的时候,接触的性能问题越多,可能对sql语句的结构,性能考虑会多一些,这也是一件好事,不过如果考虑不当,本来原本想做的的一些优化却使得问题变得更加严重。在生产环境中我们对指定的客户端都有一定的监控,在下午的时候发现一个sql语句执行的时间太长了,抓到语句,一看倒不复杂,是一个开发人员...
关于修改分区表的准备和操作细则
在之前的博文中,讨论过一个根据分区键值发现性能问题的案例。90%以上的数据都分布在了一个分区上,其它的分区要么没有数据要么数据很少,这是很明显的分区问题。当然这个过程中也发现了分区的划分从开发角度和数据角度还是存在很大的差别,导致了分区的问题。通过分区键值发现性能问题 http://blog.itpub.net/237187...
oracle PL/SQL中的重载
在java中,有方法重写,方法重载,重载的一个典型例子就是类中的构造函数,可以根据自己的需求定义多个构造函数,默认是一个无参数的空函数。重写是基于父类子类之间的多态性体现上,父类的一个方法,在子类中可以重写.oracle中也可以有重载的实现。自己在总结的时候归纳了一下两种。一种是通过包来实现,一种是通过pl/s...
关于pl/sql的代码保护
在开始学习数据库的时候,总是尝试手动创建数据库,安装完成之后需要运行一些脚本,总是看到屏幕上闪个不停,可以看到大多数的存储过程代码都是一堆乱码,最开始还以为是乱码了。:)有时候心血来潮想看看里面的代码,但是基本上都是看到存储过程名或者函数名,再细节的代码都被屏蔽掉了。大家在运行awr,ash的时候,也看...
关于正则表达式第一篇
正则表达式在编程语言中,数据库中,linux中都有着广泛的应用,一说起正则表达式就有些高深晦涩的味道,正则表达式精炼而重要,在Linux中有着举足轻重的作用,也是学好sed,awk的一个基本门槛。正则表达式是基于正则表达式引擎来实现的,引擎主要有以下两类。可能大家对这个比较陌生。POSIX基本正则表达式引擎 BREP...
关于正则表达式第二篇
在第一篇中介绍了关于纯文本和特殊字符在正则表达式中的应用,来看看其它的一些相关的点。--关于锚定锚定就跟大家在开发网页的时候使用的锚定是一个意思,其实就是给一段字符做个标识。对于行首使用是^,对于行尾使用时$,可能大家并不陌生。锁定在行首$ echo "The book store" |sed -n '/^book/p' &...
由一条sql语句导致的系统IO问题
早上来到公司,照例进行了简单的检查,发现系统负载不高,就开始计划一些sql tuning的工作,但是过了一会,在通过shell命令查找一些sql信息的时候,发现系统的反应有些慢,当时也没在意,当我查看v$session都开始慢的时候,感觉哪里出了什么问题了,最直观的感受就是一些命令的运行都很缓慢了。首先查看了一下数据库的负载...
使用shell定制awr脚本
大家在做性能问题诊断的时候,awr是不可或缺的工具,使用?/rdbms/admin/awrrpt.sql可能大家使用的多了,可能有时候感觉输入参数还是有些太繁琐了。一边复制,一边得到一个快照列表查看,其实还是不太方便。比如我想查看某一天的8点到9点的快照,生成一个awr报告,那么可能得算一下大概需要多少天的快照,然后从一个冗长的快...
通过shell定制ash脚本
ash是在10g以来一个很有用的特性,能够作为awr的补充,对于排查一些历史的问题能够提供更加详细和针对性的数据。当然个人在使用ash的时候感觉最慢的地方就是在于输入时间戳了,每次输入侧时候都得一边看着样例,一边按照格式,一份ash的报告,至少20%以上的时间耗在这个时间戳上了。有时候想查看几个时间点的数据,如果精...
生产环境sql语句调优实战第九篇
生产环境中有一些sql语句是不定时炸弹,不声不响的运行着,可能相关的表很大,运行时间达数小时。上周在生产环境中发现一条sql语句,运行时间几乎是按照天来计算的。看到这种sql语句,就希望能够马上能够找到立竿见影的效果,不过欲速则不达,需要做不少工作。一定要反复验证可行。sql语句的运行情况如下:SQL Execution ...
关于修改分区表的问题总结
在之前的章节中讨论了关于修改表分区的一些准备工作和操作细则,这个问题的来由有必要说一下。通过分区键值发现性能问题 http://blog.itpub.net/23718752/viewspace-1263068/当时是在做数据迁移的时候发现了一些表,导入数据比较慢,尽管做了分区的并行切分,速度还是很慢,最后查看数据的分布时,发现90%左右的数...
关于查询转换的一些简单分析(一)
在sql解析器中,在生成执行计划的时候,会在多个执行计划中选择最优的计划,在这个过程中,查询转换就是一个很重要的过程。虽然最终的执行结果没有变化,但是从优化器的角度来看,查询转换的结果会更好。大体来说查询转换有以下几种类型。视图合并子查询解嵌套谓词推进物化视图查询重写比如select *from emp whe...
memory_target设置不当导致数据库无法启动的问题
今天在做一个问题排查的时候碰到了另外一个有些“奇怪的”问题。我们在测试库中已经禁用了SGA自动存储管理,结果在spfile文件里丢掉了shared_pool_size的配置测试环境的参数类似下面的样子sga_max_size big integer 1200Msga_targ...
生产环境sql语句调优实战第十篇
陆陆续续写了九篇关于生产环境sql语句的调优案例,发现了不少问题,可能有些问题回头来看是比较低级的错误,稍加改动就能够运行在秒级,有些可能是在秒级到毫秒级的小步提升等等,不管调优的改进多大,从dba的角度来看,好多问题都是基于资源来调优的,比如添加索引,降低IO,降低CPU消耗,提高CPU利用率等等。如果有时候从...