查询Oracle正在执行和执行过的SQL语句

时间:2019-05-13 01:18:10下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《查询Oracle正在执行和执行过的SQL语句》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《查询Oracle正在执行和执行过的SQL语句》。

第一篇:查询Oracle正在执行和执行过的SQL语句

查询Oracle正在执行和执行过的SQL语句

--正在执行的select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT

from v$session a, v$sqlarea bwhere a.sql_address = b.address

---执行过的select b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXT

from v$sqlarea b

where b.FIRST_LOAD_TIME between '2009-10-15/09:24:47' and'2009-10-15/09:24:47' order by b.FIRST_LOAD_TIME

(此方法好处可以查看某一时间段执行过的sql,并且 SQL_FULLTEXT 包含了完整的 sql 语句)其他

select OSUSER,PROGRAM,USERNAME,SCfrom V$SESSION A LEFT JOIN V$SQL B ON A.SQL_ADDRESS=B.ADDRESS AND A.SQL_HASH_VALUE=B.HASH_VALUE order by b.cpu_time desc

HEMANAME,B.Cpu_Time,STATUS,B.SQL_TEXTselect address, sql_text, piece

from v$session, v$sqltextwhere address = sql_address

--and machine = < you machine name >order by address, piece

查找前十条性能差的sql.SELECT * FROM(select PARSING_USER_ID,EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,sql_text FROM v$sqlarea

order BY disk_reads DESC)where ROWNUM<10;

查看占io较大的正在运行的sessionfacebook:http:// SELECT se.sid,se.serial#,pr.SPID,se.username,se.status,se.terminal,se.program,se.MODULE,、se.sql_address,st.event,st.p1text,si.physical_reads,si.block_changes FROM v$session se,v$session_wait st,v$sess_io si,v$process pr WHERE st.sid=se.sid AND st.sid=si.sid AND se.PADDR=pr.ADDR AND se.sid>6 AND st.wait_time=0 AND st.event NOT LIKE '%SQL%' ORDER BY physical_reads DESC

第二篇:执行多条SQL语句

执行多条SQL语句

使用mysqli一次执行多条SQL语句

$mysqli=new MySQLi(“localhost”,“root”,“",”xiaoqiangdb“);

/*==========================没有结果集:insert update delete==========================*/

$sqls=”insert into shops(name,price,num,desn)values('book1','12.16','5','good');“;

$sqls.=”updated shops set name='testname' where id>50;“;

$sqls.=”delete from shops where id < 20“;

if($mysqli->multi_query($sqls)){

echo ”多条语句执行成功!
“;

echo ”最后插入的ID:“.$mysqli->insert_id.”
“;

//echo ”影响的行数:“.$mysqli->affected_rows;//不准确!

}else{

echo ”ERROR“.$mysqli->errno.”---“.$mysqli->error;

}

/*==========================有结果集:select==========================*/$sqls=”select current_user();“;

$sqls.=”desc shops;“;

$sqls.=”select * fron shops“;

if($mysqli->multi_query($sqls)){

echo ”多条语句执行成功!
“;

do{

$result=$mysqli->store_result();//获取结果集

echo '

';

echo '

';

while($field=$result->fetch_field()){

echo '

';

}

echo '

';

while($row=$result->fetch_assoc()){

echo '

';

foreach($row as $col){

echo '

';

}

echo '

';

}

echo '

'.$field->name.'
'.$col.'
';

if($mysqli->more_results()){//判断还有没有结果集echo ”


“;

}

}while($mysqli->next_result());//取得下一个结果集}else{

echo ”ERROR“.$mysqli->errno.”---".$mysqli->error;}

$mysqli->close();

?>

第三篇:Oracle SQL执行缓慢的原因以及解决方案

Oracle SQL执行缓慢的原因以及解决方案 Oracle SQL执行缓慢的原因的分析,如果Oracle数据库中的某张表的相关数据已是2亿多时,同时此表也创建了相关的4个独立的相关索引。由于业务方面的需要,每天需分两次向此表中插入300万条记录。

由于数据量大,每次插入耗时3个小时以上,严重影响效率。

因此,修改了系统的算法,将此表中只存储当天新增记录。将此表truncate后,第二天执行对此表的update操作时,非常耗时。表中有2亿多条数据的时候,此Oracle sql语句耗时59秒;表中有300万条数据的时候,此Oracle sql语句耗时几个小时。

咨询DBA后,得出结论,需重建索引。重建后,6秒完成此操作。但第三天问题依然出现。DBA正在查找原因。难道每次truncate表,都需要重建索引?

对于这个问题,DBA也没有给出合理的解释,推测主要原因是Oracle复杂的查询优化算法。最终,DBA给出的解决方案:

1.truncate table....2.drop index.....3.insert data.....4.create index...5.analyze table table_name compute statistics;

重新生成统计数据

调整后,整个操作耗时非常少。

第四篇:SQL查询语句

SQL查询语句

第一次:查询(显示)、条件、排序、空记录

第二次:通配符、生成表、文件(记事本)、数组、临时表,数学函数、分组、嵌套查询

第三次:插入记录、删除记录、更新记录 第四次:超连接、新建(打开)数据库、表的建立、表的删除、第五次 表结构的修改,添加记录 显示同张芳同一天出生的学生的信息 格式:

1、查询(显示)记录

显示所有男学生的学号,姓名,性别 区分:字段、条件、表名

Select 字段名列表(*)from 表名; where 条件表达式;

into table(dbf)文件名;

into cursor 临时表名;

into array 数组名;

to file 文件名;

order by 字段名列表(asc desc);

group by 字段名 having 条件;

显示所有大于平均分的学生的学号、姓名 显示同E4挣同样工资的职工信息

Select * from 职工 where 工资=(select 工资 from 职工 where 职工号=”E4”)职工(仓库号C(10),职工号 C(10),工资 N(10,2))

显示所有工资大于1500的员工的仓库号、职工号及所在的城市

2、插入记录

Insert into 表名(字段名列表)values(记录值)

3、删除记录

Delete from 表名 where 条件

4、更新记录

Update 表名 set 字段名=记录值; Where 条件

5、表的删除

drop table 表名

6、表的建立

create table 表名(字段名 数据类型(宽度))

7、表结构的修改select * from 职工where 职工号!=“E4” AND 工资=(select 工资 from 职工 where 职工号=“E4”)

alter table 表名

1)增加字段

alter table student add 身份证号 c(10)

2)删除字段

alter table student drop colum 身份证号

3)修改字段名

alter table student rename colum 出生日期 to 出生年月

4)增加字段有效性规则

alter table student alter 成绩 set check 成绩>=0 and 成绩<=100;

error “成绩输入错误,成绩应该在0-100之间”

5)删除字段有效性规则

alter table student alter 成绩 drop check 注意:

以上题目中用到的 SQL语句粘贴到计事本文件XY.TXT中(每行一条语句)。对两个表操作的方法:

1)同时打开两个表

select 仓库.仓库号,城市,职工号,工资 from 仓库,职工;

where 职工.仓库号=仓库.仓库号 and 工资=1250

2)超连接(内连接、左连接、右连接、全连

接)

内连接:只显示符合条件的记录

左连接:显示符合条件的记录及第一个表中不符合条件的记录

右连接:显示符合条件的记录及第二个表中不符合条件的记录

全连接:显示符合条件的记录及第一、二个表中不符合条件的记录

成绩表(score)

学号姓名课程名成绩 2001张三计算机10 2003张四英语20 2001张三语言30 2005张三数据40 2003张四计算机50

Select sum(成绩)from score group by 学号

Select sum(成绩)from score group by 课程名

select 字段名列表(*)from 表名;where 条件;

order by 字段名列表 asc|desc;

into table(dbf)表名;

into array 数组名;

to file 文件名;

into cursor 临时表名

题目练习

实现以下功能:在考生文件夹下,打开“陶的数据库”的数据库,并利用SQL语句在该数据库中新建一个表:gongzi(职工号 c(4),实发工资 n(7,0)),将zhigong表中基本工资大于1330(含1330)的记录存储在gongzi表中,其中实发工资为:基本工资+加班费(白天20,晚上30),最后将所有的SQL语句保存到考生目录下的sqlanswer.txt文件中(自行建立,一行一条语句)

open database 陶的数据库

create table gongzi(职工号 c(4),基本工资 n(7,2))

select 职工号,基本工资+白班*20+晚班*30 from zhigong;where 基本工资>1350 into array xy

insert into gongzi from array xy

第五篇:Sql语句查询

sql语句多表连接查询

在程序开发过程中,不仅可以对单一数据表进行查询,还可以进行多表查询,用户通过多表查询从多个表中提取出需要的数据。

多表查询可以分为内连接查询、外连接查询以及联合查询。

1.内连接查询

连接查询是指通过各个表之间共同列的关联性查询数据。连接查询分为内连接查询和外连接查询。内连接是将两个相互交叉的数据集合中重叠部分的数据行连接起来,返回表示两个数据集合之间匹配连接关系的数据行。

可以在FORM子句中使用INNER JOIN„ON„建立内连接,也可以在WHERE子句中指定连接条件建立内连接,例如:

select a.UserName,b.BookName,b.Datetm from UserInfo as a inner join SellSheet as b on a.UserID= b.UserID

也可以用下面的语句实现。

select a.UserName,b.BookName,b.Datetm from UserInfo as a,SellSheet as b where a.UserID=b.UserID

2.外连接查询

外连接是对内连接的扩充,除了将两个数据集合中重叠部分以内的数据行连接起来之外,还可以根据要求返回左侧或右侧数据集合中非匹配的数据,即左外连接(LEFT OUTER JOIN)和右外连接(RIGHT OUTER JOIN)。

l左外连接LEFT OUTER JOIN

左外连接LEFT OUTER JOIN逻辑运算符除了返回两个数据表中满足连接条件的行,它还返回任何在后一个数据表中没有匹配行的前一个数据表中的行。非匹配行的部分字段列作为空值返回。

l右外连接RIGHT OUTER JOIN

右外连接RIGHT OUTER JOIN是左外连接的反向连接。它除了返回两个数据表中满足连接条件的行,还返回任何在前一个数据表中没有匹配行的后一个数据表中的行。非匹配行的部分字段列作为空值返回。

3.使用UNION进行联合查询

使用UNION运算符可以进行联合查询。UNION运算符连接多个SELECT语句,将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中所有查询的全部行。使用UNION运算符遵循的规则如下:

(1)在使用UNION运算符组合的语句中,所有选择列表的表达式数目必须相同(列名、算术表达式、聚集函数等)。

(2)在使用UNION组合的结果集中的相应列必须具有相同数据类型,或者两种数据类型之间必须存在可能的隐性数据转换,或者提供了显式转换。例如,在datetime数据类型的列和binary数据类型的列之间不能使用UNION运算符,除非提供了显式转换,而在money数据类型的列和int数据类型的列之间可以使用UNION运算符,因为它们可以进行隐性转换。

(3)结果集中列的名字或者别名是由第一个SELECT语句的选择列表决定的。

注意:对数据表进行联合查询时,结果集中行的最大数量是各表行数之“和”,而对数据表进行连接查询时,结果集中行的最大数量是各表行数之“积”。

下载查询Oracle正在执行和执行过的SQL语句word格式文档
下载查询Oracle正在执行和执行过的SQL语句.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    oracle维护常用sql语句(主要)

    1、oracle表空间利用率 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MBF.TOTAL_BYTES) D.TOT_GROOTTE_MB * 100,2),'9......

    SQL语句大全(百度查询)

    创建数据库 创建之前判断该数据库是否存在 if exists (select * from sysdatabases where name='databaseName') drop database databaseName go Create DATABASE database-......

    SQL结构化查询语句

    SQL结构化查询语句一、数据定义功能 创建表:Createtable 表名(字段名……) 修改表:Altertable表名 删除表:Droptable表名二、数据操纵功能 数据插入:Insertinto 表名values ( …,…......

    Oracle SQL精妙SQL语句讲解

    SQL*PLUS界面: 登录:输入SQLPLUS回车;输入正确的ORACLE用户名并回车;输入用户口令并回车,显示提示符:SQL> 退出:输入EXIT即可。2)命令的编辑与运行: 在命令提示符后输入SQL命令并......

    hibernate执行sql语句的总结[5篇范文]

    下面看个示例: public List findMenusByEntityTypeId(Long id) { String hql = "select m.id as {menu.id},m.name as {menu.name},m.url as {menu.url},m.icon_url as {menu......

    利用execute方法执行SQL语句[优秀范文5篇]

    一,利用execute方法执行SQL语句 第一步:建立Connection对象set conn = Server.CreateObject("ADODB.Connection")第二步:使用Connection对象的Open方法建立数据库连接 conn.Ope......

    无忧SQL语句(除查询)

    【64一1】用命令新建一个名为“外汇”的数据库,并将该命令存储于one.txt中; CREATE DATABASE 外汇 【22一3】使用SQL语句创建一个名为"分组情况表"的自由表,"分组情况表"有两个......

    SQL Server查询语句学习心得

    SQL Server查询语句学习心得 李臻敏 摘要:数据库技术已经广泛地渗透到各个领域,数据库应用技术也已经成为计算机必修课程,SQL Server2005是Microsoft 公司推出的数据库服务产品......