- 浏览: 1198059 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (361)
- java综合 (33)
- 项目管理 (10)
- 工作流 (6)
- spring (11)
- hibenate (17)
- struts (0)
- javascript,html,css,ajax,jquery (11)
- IDE (9)
- 生活 (0)
- 工作 (0)
- 杂记 (1)
- 数据库 (96)
- 服务器 (5)
- 可视编辑 (0)
- freemarker (6)
- 操作系统 windows (13)
- web页面 (6)
- jms (15)
- 调优 (4)
- 测试和bug管理 (2)
- 原理 (1)
- 項目-atf (17)
- 安全 (3)
- xml (4)
- 操作系统 liunx (21)
- 网络 (22)
- office (11)
- 设计 (2)
- 软件 (1)
- 数据库 mysql (6)
- 胖客户端-flex (1)
- 正则 (9)
- oracle- liunx (3)
- sql2000 (2)
- 模式 (1)
- 虚拟机 (2)
- jstl (2)
- 版本控制 打包工具 (0)
- AOP (1)
- demo (1)
- 小软件 (2)
- 感恩 (1)
- iphone 4 (1)
- 反欺诈业务经验整理 (0)
最新评论
-
sea0108:
mark
java内存模型 -
XingShiYiShi:
方便把:testPNR();具体实现发出来吗?谢谢
用正则表达式解析 航信的电子客票和pnr报文 -
wh359126613:
如果js和webservice不在同一个服务器上,有跨域问题如 ...
使用javascript调用webservice示例 -
雨飛雁舞:
...
oracle 动态性能(V$)视图 -
ouyang1224:
好东西
oracle 动态性能(V$)视图
常用sql,建立临时表语法,会话级临时表,查看锁表,解除锁表,case,连接的会话数 ,查询耗资源的进程(top session),查找object为哪些进程所用
查看所有SEQUENCES:
select sequence_name from USER_SEQUENCES;
修改表字段不允许为空
alter table table_name modify cloumn_name not null;
查询序列
select seq_major_site_reg.nextval from dual;
添加主键
alter table table_name add constraint PK_SEEDSITE_ID primary key (ID);
Oracle Temporary Tables(Oracle 临时表)
1. 建立临时表语法
A.ON COMMIT DELETE ROWS 定义了建立事务级临时表的方法
CREATE GLOBAL TEMPORARY TABLE TABLE_NAME
-----(COUMNS …)
-----AS SELECT … FROM TABLE…
ON COMMIT DELETE ROWS;
当前session发出commit/rollback命令,则该事务周期发生的所有数据自动被Oracle删除(Oracle truncate table)。但不影响任何其他session的数据。
B.ON COMMIT PRESERVE ROWS 定义了创建会话级临时表的方法
CREATE GLOBAL TEMPORARY TABLE TABLE_NAME
-----(COUMNS …)
-----AS SELECT … FROM TABLE…
ON COMMIT PRESERVE ROWS;
当前session结束(用户正常退出 / 用户不正常退出 / Oracle实例崩溃),Oracle对这个会话的中发生的数据进行删除(Oracle truncate table)。但不影响任何其他session的数据。
2. 特点说明
A.临时表数据自动清空后,但是临时表的结构以及元数据还存储在用户的数据字典中。表的定义对所有的会话可见
B.临时表不需要DML锁
C.可以索引临时表和在临时表基础上建立视图
D.在临时表上的索引也是临时的,也是只对当前会话或者事务有效
E.临时表可以拥有触发器
F.可以用export和import工具导入导出临时表的定义,但是不能导出数据
3. 使用技巧
A.当某一个SQL语句关联的表在2张及以上,并且和一些小表关联。可以采用将大表进行分拆并且得到比较小的结果集合存放在临时表中
B.程序执行过程中可能需要存放一些临时的数据,可以将这类数据放在临时表里非常方便
C.存储过程中用到临时表:
1> 在建立临时表前,应先加上对表名的判断
Select count(*) into v_count from user_tables where table_name = ‘XXX’;
If v_count=0 then
Create global temporary table …
在存储过程结束处,应该记得删除表
execute immediate 'drop table t_temp';
4、查看锁表信息
SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#,
l.os_user_name,s.machine, s.terminal,a.sql_text, a.action
FROM v$sqlarea a,v$session s, v$locked_object l
WHERE l.session_id = s.sid
AND s.prev_sql_addr = a.address
ORDER BY sid, s.serial#;
5、解除锁表
alter system kill session 'sid,serial#';
例:alter system kill session '135,16';
--以下几个为相关表
SELECT * FROM v$lock;
SELECT * FROM v$sqlarea;
SELECT * FROM v$session;
SELECT * FROM v$process ;
SELECT * FROM v$locked_object;
SELECT * FROM all_objects;
SELECT * FROM v$session_wait;
1.查出锁定object的session的信息以及被锁定的object名
SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,
l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time
FROM v$locked_object l, all_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY sid, s.serial# ;
2.查出锁定表的session的sid, serial#,os_user_name, machine name, terminal和执行的语句
--比上面那段多出sql_text和action
SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#,
l.os_user_name,s.machine, s.terminal,a.sql_text, a.action
FROM v$sqlarea a,v$session s, v$locked_object l
WHERE l.session_id = s.sid
AND s.prev_sql_addr = a.address
ORDER BY sid, s.serial#;
3.查出锁定表的sid, serial#,os_user_name, machine_name, terminal,锁的type,mode
SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,
s.terminal, s.logon_time, l.type
FROM v$session s, v$lock l
WHERE s.sid = l.sid
AND s.username IS NOT NULL
ORDER BY sid;
4.case语句:
SELECT count(*) cnt, field
FROM (SELECT case
when salary < 1000 then
'饥饿'
WHEN salary >= 1000 and salary <= 1500 THEN
'温饱'
WHEN salary > 1500 and salary <= 2000 THEN
'富裕'
WHEN salary > 2000 and salary <= 2500 THEN
'小康'
ELSE
'太富了'
END field
FROM persion) a
GROUP by field;
5.根据某一条件查出星期
select to_char(to_date(' 2009-03-09 ', ' yyyy-mm-dd ') + rownum - 1, 'DAY') as 星期,
to_date(' 2009-03-09 ', ' yyyy-mm-dd ') + rownum - 1 as 日期
from user_objects
where rownum <= (to_date(' 2009-03-09 ', ' yyyy-mm-dd ') + 7 -
to_date(' 2009-03-09 ', ' yyyy-mm-dd '));
6、在数据库服务器上 查看 那台机器连接到了数据库,连接的会话数是多少
select count(*),machine from v$session v group by machine;
找使用CPU多的用户session
12是cpu used by this session
select a.sid,spid,status,substr(a.program,1,40) prog,a.terminal,osuser,value/60/100 value
from v$session a,v$process b,v$sesstat c
where c.statistic#=12 and c.sid=a.sid and a.paddr=b.addr order by value desc;
监控表空间的 I/O 比例
select df.tablespace_name name,df.file_name "file",f.phyrds pyr,
f.phyblkrd pbr,f.phywrts pyw, f.phyblkwrt pbw
from v$filestat f, dba_data_files df
where f.file# = df.file_id
order by df.tablespace_name;
监控当前数据库谁在运行什么SQL语句
SELECT osuser, username, sql_text from v$session a, v$sqltext b
where a.sql_address =b.address order by address, piece;
检查被长时间锁的对象
SQL>select a.session_id,a.process,a.locked_mode,b.object_name,b.object_type,b.status from v$locked_object a,dba_objects b where a.object_id=b.object_id;
查找object为哪些进程所用
SELECT p.Spid, s.Sid, s.Serial# Serial_Num, s.Username User_Name,
a.TYPE Object_Type, s.Osuser Os_User_Name, a.Owner,
a.OBJECT Object_Name,
Decode(Sign(48 - Command), 1, To_Char(Command), 'Action Code #' || To_Char(Command)) Action,
p.Program Oracle_Process, s.Terminal Terminal, s.Program Program,
s.Status Session_Status
FROM V$session s, V$access a, V$process p
WHERE s.Paddr = p.Addr
AND s.TYPE = 'USER'
AND a.Sid = s.Sid
AND a.OBJECT = '&obj'
ORDER BY s.Username, s.Osuser
查询耗资源的进程(top session)
SELECT s.Schemaname Schema_Name,
Decode(Sign(48 - Command),
1, To_Char(Command), 'Action Code #' || To_Char(Command)) Action,
Status Session_Status, s.Osuser Os_User_Name, s.Sid, p.Spid,
s.Serial# Serial_Num, Nvl(s.Username, '[Oracle process]') User_Name,
s.Terminal Terminal, s.Program Program, St.VALUE Criteria_Value
FROM V$sesstat St, V$session s, V$process p
WHERE St.Sid = s.Sid AND St.Statistic# = To_Number('38')
AND ('ALL' = 'ALL' OR s.Status = 'ALL')
AND p.Addr = s.Paddr
ORDER BY St.VALUE DESC, p.Spid ASC, s.Username ASC, s.Osuser ASC
查看锁(lock)情况
SELECT /*+ RULE */
Ls.Osuser Os_User_Name, Ls.Username User_Name,
Decode(Ls.TYPE,
'RW', 'Row wait enqueue lock', 'TM', 'DML enqueue lock',
'TX', 'Transaction enqueue lock', 'UL', 'User supplied lock') Lock_Type,
o.Object_Name OBJECT,
Decode(Ls.Lmode,
1, NULL, 2, 'Row Share', 3, 'Row Exclusive',
4, 'Share', 5, 'Share Row Exclusive', 6, 'Exclusive', 6,NULL) Lock_Mode,
o.Owner, Ls.Sid, Ls.Serial# Serial_Num, Ls.Id1, Ls.Id2
FROM Sys.Dba_Objects o,
(SELECT s.Osuser, s.Username, l.TYPE, l.Lmode, s.Sid, s.Serial#, l.Id1,
l.Id2
FROM V$session s, V$lock l
WHERE s.Sid = l.Sid) Ls
WHERE o.Object_Id = Ls.Id1
AND o.Owner <> 'SYS'
ORDER BY o.Owner, o.Object_Name
发表评论
-
并发行级锁超2秒报警监控sql
2010-07-20 16:18 1939并发行级锁超2秒报警监控sql -
数据设计规范v
2010-06-22 19:47 0数据设计规范v -
Oracle 有趣排序包括那些
2010-06-20 16:51 1452按拼音排序 select * from table ... -
Oracle sql 性能优化调整
2010-06-20 16:15 1395Oracle sql ... -
Delete、Drop、Truncate的比较(转)
2010-05-31 13:39 1475Delete、Drop、Truncate的比较 关键字: d ... -
Oracle误操作解决方案(转)
2010-05-31 13:35 1392Oracle误操作解决方案 文章分类:数据库 一.误删除数 ... -
一个递归调用的存储过程
2010-04-19 01:51 1849一个递归调用的存储过程 -
oracle index学习总结
2009-12-08 10:44 19629oracle index 1.index需要储存空间 ... -
Jdbc 和hibernate
2009-11-16 23:38 1876Jdbc 和hibernate 一、Jdbc是java ... -
去掉 powerDesigner 中表设计时的 name和code联动的功能
2009-11-16 17:04 3485去掉 powerDesigner 中表设计时的 name和co ... -
oracle数据库索引未被使用的问题及其解决2007
2009-11-15 01:42 2132一次,在进行WEB页面上进行历史数据文件检查时,发现数据库访问 ... -
RMAN配置及备份与恢复练习
2009-09-27 18:06 16261.创建表空间SQL>create tablespace ... -
误删除数据后怎么立即恢复(不考虑全库备份和利用归档日志)
2009-09-27 18:01 3385要达到删除数据,有以下几种方式都可以:1、delete2、dr ... -
IMP数据到指定的表空间
2009-09-27 12:47 9105IMP数据到指定的表空间 一直以来,我都认为只要指定用户的默 ... -
ORACLE UPDATE 语句语法与性能分析
2009-09-27 09:49 1880为了方便起见,建立了以下简单模型,和构造了部分测试数据: 在 ... -
oracle job 例子
2009-09-22 12:38 3064一、设置初始化参 ... -
oracle 时间加减综合
2009-09-17 11:43 1981加法 select sysdate,add_mon ... -
详细介绍ORACLE sqlplus命令
2009-09-09 16:42 2063一、ORACLE的启动和关闭1、在单机环境下要想启动或关闭OR ... -
AWR介绍与SYSAUX空间关系 SYASAUX表空间满了 系统慢
2009-09-08 09:45 7958AWR介绍与SYSAUX空间关系 2007-11-05 14 ... -
to_char 'NLS_DATE_LANGUAG参数
2009-09-02 18:41 1482select to_char(sysdate, 'Day'), ...
相关推荐
**Qt样式表语法总结** Qt样式表(QSS,Qt Style Sheet)是Qt框架提供的一种强大的界面美化工具,类似于Web开发中的CSS,用于控制Qt应用程序的外观和布局。通过使用Qt样式表,开发者可以轻松地改变窗口、按钮、...
### SQL修复数据表语句详解 #### 一、概述 在数据库管理中,由于各种原因(如硬件故障、软件bug等)可能导致数据表出现一致性错误,进而影响到数据的完整性和系统的正常运行。为了恢复数据表的一致性,SQL提供了...
SQL Server 锁表语句分享 在 SQL Server 中,锁机制是数据库并发性和高性能的关键。锁机制可以防止多个事务同时访问数据库中同一个资源,从而避免数据的不一致和丢失。SQL Server 提供了多种锁机制,包括共享锁、排...
### 删除锁表语句 在数据库管理中,锁是一种重要的机制,用于控制多个用户或进程对数据资源的同时访问,以防止并发操作导致的数据不一致问题。然而,在某些情况下,锁可能会造成性能瓶颈或者死锁等问题,因此需要...
- **检查表是否存在**:可以使用SQL查询来检查表是否存在。 ```sql SELECT COUNT(*) AS dida FROM sysobjects WHERE id = object_id(N'[所有者].[表名]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1 ``` - **...
K3 WISE-职员表和部门表语句相关的SQL语句,方便大家提取职员与部门的相关信息的sql语句。
表的创建-SQL语句 课程目标 掌握 —— 显示数据表文件和表结构的语法格式。 掌握 —— 创建数据表的语法格式; 表的创建 show tables; 说明:用于显示已经建立的数据库表文件 显示数据库表语法格式 表的创建 创建...
### Oracle 外部表语法详解 #### 一、外部表概念 在Oracle数据库中,**外部表**是一种特殊类型的表,其数据存储于数据库之外,通常位于文件系统中。这使得用户能够在无需将数据导入数据库的情况下,直接使用SQL对...
在SQL Server数据库管理中,生成表结构语句是一项常见的任务,尤其在数据库设计、备份或迁移的场景下。本文将详细讲解如何利用SQL Server管理工具和T-SQL语句来快速生成表结构的创建语句。 一、SQL Server ...
如果只赋予用户部分权限,例如创建会话、查询任意表、DBA权限等: ```sql GRANT CREATE SESSION, SELECT ANY TABLE, DBA TO user_name; ``` 清空数据时,使用TRUNCATE命令可以快速移除表中的所有数据: ```sql ...
- Oracle的全局临时表语法:`CREATE GLOBAL TEMPORARY TABLE aa(col number) ON COMMIT PRESERVE ROWS`,可以选择在事务处理结束后保留或删除数据。 - Sql server使用`SELECT * INTO #temptable FROM existed ...
首先,SQL表语句通常用来创建、更新、查询和管理数据库中的数据。在这个场景下,可能有一个或多个SQL表,每个表代表一个层级的行政区域,如“省份表”、“城市表”等。表的结构可能包括字段如“id”(唯一标识)、...
SQL修改表语句允许我们动态地更新数据库中的表结构,以便适应业务需求的变化。以下是一些常见的SQL命令: 1. **添加列 (ALTER TABLE ADD COLUMN)**:当我们需要向已存在的表中增加新的数据字段时,可以使用此语句。...
### Oracle经典教程2——SQL数据库操作和查询 #### 1. SQL简介 SQL,即结构化查询语言(Structured Query Language),是一种专为管理和操作关系型数据库设计的标准编程语言。通过SQL,用户能够有效地进行数据存取...
excel自动创建sqlserver表语句,不要在wps打开,用office打开,否则无法运行宏!
这个过程通常涉及执行一系列SQL语句来创建必要的表结构。 Quartz的初始化SQL语句主要用于创建存储作业(Jobs)、触发器(Triggers)、日历(Calendars)等信息的数据库表。这些表是Quartz与数据库交互的基础,确保...
- **暂存表(Temp Table)**:解释临时表的概念及其应用场景。 - **限制条件(Constraints)功能**:介绍不同类型的约束条件及其作用。 - **维护限制条件**:说明如何添加、修改或删除约束条件。 - **外键限制条件**:...
表的管理-SQL语句 课程目标 掌握 —— 修改数据表的语法格式; 掌握 —— 删除和复制数据表的语法格式。 表的管理 修改数据库表语法格式 alter table <表名> [add <新字段名> <数据类型> [<列级完整性约束条件>] ...
查询语句是SQL中最常用的语句之一,它用于从一个或多个表中检索数据。基本语法如下: ```sql SELECT column1, column2, ... FROM table_name WHERE condition; ``` 这里`column1, column2, ...`是指希望从表中选择的...