如何在Oracle中查看job的创建脚本在SQL*Plus中可以处理三种类型的命令:SQL语句、PL/SQL块和SQL*Plus命令 。
但三者之间是有区别的 。
脚本中的 “:job”是一种绑定变量的方式,属于sql plus的命令格式 。需要写成如下格式,然后在plsql developer的命令窗口中执行 , 或者到sqlplus中执行 。
varjob number;
begin
sys.dbms_job.submit(job = :job,
what = 'ps_inventory_io;',
next_date = to_date('01-01-4000', 'dd-mm-yyyy'),
interval = 'trunc(sysdate) 1 0/24');
commit;
end;
/
1)SQL语句是以数据库为操作对象的语言,主要包括数据定义语言DDL、数据操纵语言DML和数据控制语言DCL以及数据存储语言DSL 。当输入SQL语句后,SQL*Plus将其保存在内部缓冲区中 。
当SQL命令输入完毕时,有三种方法可以结束SQL命令:在命令行的末尾输入分号(;)并按回车;在单独一行上用斜杠(/);或用空行表示 。
2)PL/SQL块同样是以数据库中的数据为操作对象 。但由于SQL不具备过程控制功能,所以,为了能够与其他语言一样具备面向过程的处理功能,在SQL中加入了诸如循环、选择等面向过程的处理功能 , 由此形成了PL/SQL 。所有PL/SQL语句的解释均由PL/SQL引擎来完成 。使用PL/SQL块可编写过程、触发器和包等数据库永久对象 。
3)SQL*Plus命令主要用来格式化查询结果、设置选择、编辑及存储SQL命令、以设置查询结果的显示格式,并且可以设置环境选项 。
几个简单常用的oracle权限查询脚本你好:下面语句中有你需要的这个权限:select any table(如果针对单个用户的表话,这个没有 , 只能一个表一个表的授权)
创建用户并授权
上接第一步 。
在SQL后面输入创建用户的语句:
create user vpetl identified by vpetl
default tablespace TBS_ETL_DATA;
回车,出现“User created.”表示用户创建成功 。
在SQL后面输入给用户授权的语句:
grant connect,resource,alter system,debug connect session,select any table,delete any table,drop any table,alter any table to vpetl;
回车,出现“Grant succeeded.”表示给用户授权成功 。
在SQL后面输入给用户授权的语句:
grant execute on DBMS_LOCK to vpetl;
回车 , 出现“Grant succeeded.”表示给用户授权成功 。
在SQL后面输入给用户授权的语句:
grant select on v_$session to vpetl;
回车,出现“Grant succeeded.”表示给用户授权成功 。
在SQL后面输入给用户授权的语句:
grant select on v_$ACCESS to vpetl;
回车,出现“Grant succeeded.”表示给用户授权成功 。
在SQL后面输入给用户授权的语句:
grant alter system to vpetl;
回车,出现“Grant succeeded.”表示给用户授权成功 。
在SQL后面输入给用户授权的语句:
grant insert any table,update any table to vpetl;
回车 , 出现“Grant succeeded.”表示给用户授权成功 。
用脚本将数据库导入oracle后怎么查看脚本导入后 , 查看有被导入的库中有哪些表就可以了 。
将文本文件导入Oracle中需要用sqlloader的方式 。
1、在数据库中创建相应的表 。
如,文本文件内容为:
create table test
(id int,
name varchar2(10),
sex varchar2(10));
2、在电脑中某路径下编写ctrl文件,以c盘data目录为例,添加如下文本 。如,被导入的文件名为load.txt
loaddata
infile'load.txt'--被导入文件名
replace intotabletest
(idcharterminatedby',',
namecharterminatedby',',
sexcharterminatedbywhitespace)
编写后,将文件保存成load.ctrl
3、然后打开命令提示符,并进入到文本文件和ctrl文件所在目录 。
4、输入以下语句,并执行 。
sqlldr userid=用户名/密码@数据库实例名control=load.ctllog=load.log
5、导入后,test表中数据如下:
select * from test;
关于Oracle一些常用脚本的汇总(2) 碎片检查
select tablespace_name sqrt(max(blocks)/sum(blocks))*
( /sqrt(sqrt(count(blocks)))) fsfi
from dba_free_space
group by tablespace_name order by ;
fsfi值越小 碎片越大 自由空间碎片索引
检查reverse_key index
select o object_name
from dba_objects o
where wner= DB_ACCT
AND O OBJECT_ID IN
(SELECT I OBJ# FROM SYS IND$ I
WHERE BITAND(I PROPERTY )= )
查具体后台进程号
select spid from v$session a v$process b where a PADDR=b ADDR and sid=
查看死锁表
SELECT SID DECODE(BLOCK NO YES ) BLOCKER
DECODE(REQUEST NO YES ) WAITER
FROM V$LOCK
WHERE REQUESTOR BLOCK
ORDER BY block DESC;
查看剩余表空间
select a tablespace_name free/total* pct_free free/ / free(M) from
(select sum(bytes) free tablespace_name from dba_free_space group by tablespace_name) a
(select sum(bytes) total tablespace_name from dba_data_files group by tablespace_name) b
where a tablespace_name=b tablespace_name
order by pct_free;
查看创建索引的进度
select sid message fromv$session_longops where sid = order bystart_time
查看缴费到帐
SELECT AREA_ID to_char(sysdate yyyy mm dd hh :mi:ss ) to_char(count( )) as cnt FROM ACCT_PAY_INTERFACE
WHERE PAY_DATE=sysdate and FLAG= group by AREA_Id
查看最消耗资源的sql
SELECT * FROM(SELECT PARSING_USER_ID EXECUTIONS SORTS MAND_TYPE
DISK_READSsql_text FROM v$sqlarea ORDER BY disk_reads DESC ) WHERE ROWNUM
查看占用系统资源的进程号spid
SELECT a username a machine a program a sid a serial# a status c piece c sql_text
FROM v$session a v$process b v$sqltext c WHERE b spid=AND b addr=a paddr AND a sql_address=c address( )
ORDER BY c piece
查看占用系统io较大的session
SELECT se sid se serial# pr SPID se username se status se terminal se program
se MODULE se sql_address st event st p text si physical_reads si block_changes
FROM v$session sev$session_wait st v$sess_io si v$process pr WHERE st sid=se sidAND st sid=si sid
AND se PADDR=pr ADDR AND se sidAND st wait_time= AND st event NOT LIKE %SQL% ORDER BY physical_reads DESC
对检索出的结果的几点说明
我是按每个正在等待的session已经发生的物理读排的序 因为它与实际的IO相关
你可以看一下这些等待的进程都在忙什么 语句是否合理?
Select sql_address from v$session where sid=;
Select * from v$sqltext where address=;
执行以上两个语句便可以得到这个session的语句
你也以用alter system kill session sid serial# ;把这个session杀掉
应观注一下event这列 这是我们调优的关键一列 下面对常出现的event做以简要的说明
a buffer busy waits free buffer waits这两个参数所标识是dbwr是否够用的问题 与IO很大相关的 当v$session_wait中的free buffer wait的条目很小或没有的时侯 说明你的系统的dbwr进程决对够用 不用调整 free buffer wait的条目很多 你的系统感觉起来一定很慢 这时说明你的dbwr已经不够用了 它产生的wio已经成为你的数据库性能的瓶颈 这时的解决办法如下
a 增加写进程 同时要调整db_block_lru_latches参数
示例 修改或添加如下两个参数
db_writer_processes=
db_block_lru_latches=
a 开异步IO IBM这方面简单得多 hp则麻烦一些 可以与Hp工程师联系
b db file sequential read 指的是顺序读 即全表扫描 这也是我们应该尽量减少的部分 解决方法就是使用索引 sql调优 同时可以增大db_file_multiblock_read_count这个参数
c db file scattered read 这个参数指的是通过索引来读取 同样可以通过增加db_file_multiblock_read_count这个参数来提高性能
d latch free 与栓相关的了 需要专门调节
e 其他参数可以不特别观注
外部联接的用法
外部联接按其在 = 的左边或右边分左联接和右联接
若不带运算符的表中的一个行不直接匹配于带预算符的表中的任何行
则前者的行与后者中的一个空行相匹配并被返回 若二者均不带
则二者中无法匹配的均被返回 利用外部联接
可以替代效率十分低下的 not in 运算 大大提高运行速度 例如 下面这条命令执行起来很慢
select a empno from emp a where a empno not in
(select empno from emp where job= SALE );
倘若利用外部联接 改写命令如下:
select a empno from emp a emp b
where a empno=b empno( )
and b empno is null
and b job= SALE ;
可以发现 运行速度明显提高
如何更改UNDO tablespace
create undo tablespace undotbs datafile D:\oracle\product\ \oradata\qa\undotbs dbf size M;
alter system set undo_tablespace=undotbs scope=both;
create pfile from spfile;
alter tablespace undotbs offline;
drop tablespace undotbs including contents;
将表改成
ALTERTABLEt_monitor_real_minuteNOLOGGING;
Oracle RAC的参数文件和单实例参数文件不同 所以修改参数文件时需要注意
首先设置归档路径
SQL alter system set log_archive_dest= /opt/oracle/archive scope=spfile sid= * ;
System altered
SQL select sid name value from v$spparameter where name= log_archive_dest ;
SIDNAMEVALUE
*log_archive_dest/opt/oracle/archive
然后关闭两个实例 启动实例 更改数据库为归档模式
SQL shutdown immediate;
Database closed
Database di *** ounted
ORACLE instance shut down
SQL startup mount;
ORACLE instance started
Total System Global Area bytes
Fixed Sizebytes
Variable Sizebytes
Database Buffersbytes
Redo Buffersbytes
Database mounted
SQL alter database archivelog;
Database altered
SQL alter database open;
Database altered
SQL archive log list;
Database log modeArchive Mode
Automatic archivalEnabled
Archive destination/opt/oracle/archive
Oldest online log sequence
Next log sequence to archive
Current log sequence
lishixinzhi/Article/program/Oracle/201311/17504
怎样查看oracle中触发器的脚本oracle怎么查看脚本你使用Pl/sQLdevelop查着有触发器oracle怎么查看脚本的那个表的属性应该能找到
【oracle怎么查看脚本 oracle怎么查看脚本还需要执行多久】oracle怎么查看脚本的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle怎么查看脚本还需要执行多久、oracle怎么查看脚本的信息别忘了在本站进行查找喔 。
推荐阅读
- 滑板入门直播教程,滑板入门直播教程图片
- 手机屏幕为什么裂,手机屏幕为什么裂了
- python怎么安装爬虫库,如何安装爬虫
- 备用机用安卓好还是苹果,备用手机买苹果还是安卓
- php的到数据库结果 php怎么从数据库读取数据
- 用爱奇艺怎么连电视机,爱奇艺如何连电视
- 超市小程序怎么注册,超市小程序怎么注册店铺
- excel汉字转拼音函数,excel2016汉字转拼音公式
- linux命令获取本机名 linux命令获取本机ip地址