Oracle 性能相关常用脚本(SQL)】的更多相关文章

在缺乏的可视化工具来监控数据库性能的情形下,常用的脚本就派上用场了,下面提供几个关于Oracle性能相关的脚本供大家参考.以下脚本均在Oracle 10g测试通过,Oracle 11g可能要做相应调整. 1.寻找最多BUFFER_GETS开销的SQL 语句 --filename: top_sql_by_buffer_gets.sql --Identify heavy SQL (Get the SQL with heavy BUFFER_GETS) SET LINESIZE 190 COL sql…
--SQL查询优化 尽量避免使用or,not,distinct运算符,简化连接条件 /*Or运算符*/ use db_business go select * from 仓库 where 城市='北京' or 城市='青岛' --包含or运算符 sql将不使用索引,影响速度 /*In运算符*/ use db_business go select * from 仓库 where 城市 in('北京' ,'青岛') --有效提高运算效率 /*not运算符*/ use db_business go s…
--482, ORACLE / SQL SERVER --订购数量超过平均值的书籍 WITH Orders_Book AS ( SELECT Book_Name, SUM(Qty) Book_Qty FROM Orders GROUP BY Book_Name ) SELECT * FROM Orders_Book WHERE Book_Qty > ( SELECT AVG(Book_Qty) FROM Orders_Book ) --递归 产生连续数列1至10000 WITH Tally(N)…
--217, SQL SERVER SELECT Cust_Name , MAX(CASE WHEN Order_Date ='2009-08-01' THEN AR END) "2009-08-01" , MAX(CASE WHEN Order_Date ='2009-08-02' THEN AR END) "2009-08-02" , MAX(CASE WHEN Order_Date ='2009-08-03' THEN AR END) "2009-0…
--在sql语句中 begin...end 用来设定一个程序块 相关于c#中的{} declare @yz real,@w int --声明变量 set @w=120 --为变量赋值 if @w<=100 --if条件语句 begin --Begin程序块 set @yz=@w*0.12 --为变量赋值 end else begin set @yz=100*0.12+(@w-100)*0.05 end /*输出邮件的重量和邮费*/ print '邮件的重量是:'+cast(@w as varch…
--=================================================== --SQL Server获取OS日志: ), ), ), ) select @start_date='12/31/2012,11:59:59PM', @end_date='04/11/2013,11:59:59PM', @out_server='ebj2454' select @start_date,@end_date select @cmd='cscript c:\windows\sys…
--不带参数的存储过程 CREATE procedure proc_sql1 as begin declare @i int set @i=0 while @i<26 begin print char(ascii('a')+@i)+'的ASCII码是:'+cast(ascii('a')+@i as varchar(50)) set @i=@i+1 end end execute proc_sql1 --数据查询不带参数的储存过程 create procedure proc_sql4 as beg…
declare db_cursor4 scroll cursor for select * from 供应商 --声明游标 open db_cursor4 --打开游标 fetch first from db_cursor4 --读取游标中的第一条数据记录 fetch next from db_cursor4 --读取游标中的下一条数据记录 fetch last from db_cursor4 --读取游标中的最后一条数据记录 fetch prior from db_cursor4 --读取游标…
--创建和执行事后触发器 --更新仓库备份表中记录时自动创建数据表且插入三条记录 create trigger db_trigger1 on 仓库备份 for update as begin if Exists(select * from sys.sysobjects where id=OBJECT_ID('db_tabletriuser')) drop table db_tabletriuser else begin create table db_tabletriuser( userid i…
--把wh1仓库号中姓名含有"平"字的职工工资在原来的基础上加288 update 职工备份 set 工资=工资+288 where 仓库号='wh1' and 姓名 like '%平%' --把"北京"地区的职工的工资减少100,再增加1倍 update 职工备份 set 工资=(工资-100)*2 where 仓库号 in (select 仓库号 from 仓库备份 where 城市='北京') --把面积小于"北京"地区最小面积的仓库面积增…