查询数据库当前进程的连接数
select count(*) from v$process
查看数据库当前会话的连接数
elect count(*) from v$session
查看数据库的并发连接数
select count(*) from v$session where status= ACTIVE
查看当前数据库建立的会话情况
select sid serial# username program machine status from v$session
查询数据库允许的最大连接数
select value from v$parameter where name = processes
或者命令 show parameter processes
修改数据库允许的最大连接数
alter system set processes = scope = spfile
(需要重启数据库才能实现连接数的修改)
重启数据库
SQL>shutdown immediate
SQL>startup
查看当前有哪些用户正在使用数据
SQL>select osuser a username cpu_time/executions/ || s sql_fulltext machine
SQL>from v$session a v$sqlarea b
SQL>where a sql_address = b address
SQL>order by cpu_time/executions desc
备注 UNIX 个用户session对应一个 *** 作系统process 而Windows体现在线程
启动oracle
su oracle
SQL>sqlplus system/pwd as sysdba //进入sql
SQL>startup //启动数据库
SQL>lsnrctl start //启动监听
sqlplus /as sysdba
SQL>shutdown immediate //关闭数据库
SQL>startup mount
lishixinzhi/Article/program/Oracle/201311/18867可直接在 v$session视图中查询。
语句如:
select * from v$session where username='用户名'
其中用户名应为英文大写字母。
以下为视图各字段说明:
SADDR - session address
SID - session identifier 常用于链接其他列
SERIAL# - SID有可能会重复,当两个session的SID重复时,SERIAL#用来区别session(说白了某个session是由sid和serial#这两个值确定的)
AUDSID - audit session id。可以通过audsid查询当前session的sid。select sid from v$session where audsid=userenv('sessionid')
PADDR - process address,关联v$process的addr字段,通过这个可以查询到进程对应的session
USER# - 同于dba_users中的user_id,Oracle内部进程user#为0.
USERNAME - session's username。等于dba_users中的username。Oracle内部进程的username为空。
COMMAND - session正在执行的sql id,1代表create table,3代表select。
TADDR - 当前的transaction address。可以用来关联v$transaction中的addr字段。
LOCKWAIT - 可以通过这个字段查询出当前正在等待的锁的相关信息。sid + lockwait与v$loc中的sid + kaddr相对应。
STATUS - 用来判断session状态。Active:正执行SQL语句。inactive:等待 *** 作。killed:被标注为杀死。
SERVER - 服务类型。
SCHEMA# - schema user id。Oracle内部进程的schema#为0。
SCHEMANAME - schema username。Oracle内部进程的为sys。
OSUSER - 客户端 *** 作系统用户名。
PROCESS - 客户端process id。
MACHINE - 客户端machine name。
TERMINAL - 客户端执行的terminal name。
PROGRAM - 客户端应用程序。比如ORACLE.EXE或sqlplus.exe
TYPE - session类型。
SQL_ADDRESS,SQL_HASH_VALUE,SQL_ID,SQL_CHILD_NUMBER - session正在执行的sql状态,和v$sql中的address,hash_value,sql_id,child_number对应。
PREV_SQL_ADDR,PREV_HASH_VALUE,PREV_SQL_ID,PREV_CHILD_NUMBER - 上一次执行的sql状态。
MODULE,MODULE_HASH,ACTION,ACTION_HASH,CLIENT_INFO - 应用通过DBMS_APPLICATION_INFO设置的一些信息。
FIXED_TABLE_SEQUENCE - 当session完成一个user call后就会增加的一个数值,也就是说,如果session挂起,它就不会增加。因此可以根据这个字段来监控某个时间点以来的session性能情况。例如,一个小时前某个session的此字段数值为10000,而现在是20000,则表明一个小时内其user call较频繁,可以重点关注此session的performance statistics。
ROW_WAIT_OBJ# - 被锁定行所在table的object_id。和dba_object中的object_id关联可以得到被锁定的table name。
ROW_WAIT_FILE# - 被锁定行所在的datafile id。和v$datafile中的file#关联可以得到datafile name。
ROW_WAIT_BLOCK# - 同上,对应块。
ROW_WAIT_ROW# - session当前正在等待的被锁定的行。
LOGON_TIME - session logon time.
Qt之界面数据存储与获取(userData)向busybox中添加自己的applet
oracle内存分析
程序中实现两个DataTable的Left Join效果(修改了,网上第二个DataTable为空,所处的异常)
CompletionService 与 ExecutorService 获取任务执行结果时的区别
CompletionService 和ExecutorService的区别和用法
Java数据库开发
Python安装jpype调用java,安装jaydebeapi通过jdbc连接数据库
7. 进行图片的数据补全和增强(随机亮度,随机饱和度,随机翻转) Image.open(进行图片的读入) 2.ImageEnhance.Brightness(亮度变化) 3.ImageEnhance.Contrast(饱和度变化) 4.enhance_image.transpose(图片随机翻转) 5.enhance_image.save(进行图片保存)
数据挖掘 Apriori Algorithm python实现
Thinkphp5.0 控制器向视图view赋值
oracle 查询 函数练习
Hibernate的批量查询——原生sql查询
二十二:视图之add_url_rule和app.route
SQL语句创建数据库以及一些查询练习
Elasticsearch 使用:创建、插入、查询、更新、删除
模糊查询中Like的使用
mvc4中使用部分视图局部刷新实例
oracle(8)视图和查询数据库对象方法
leetcode877
bootstrap-table表格导出
servlet模板
[leetcode-609-Find Duplicate File in System]
SpringBoot 整合Mybatis *** 作数据库
python基础教程总结12——数据库
day37 02-Hibernate二级缓存:二级缓存的散装数据
Mysql进入数据库
WPF 视图导航
图形学思考 - 聊聊透视图投射矩阵perspective projective matrix
sql日期查询
ABAP-Eclipse ADT中创建ABAP CDS视图
技术小哥用手机实现激光笔,女友直呼:太酷了!
结婚登记人数创36年新低,结婚率下降原因是?
广告合作
发信联系
oracle(8)视图和查询数据库对象方法
扫码查看
视图
学习APP开发,接单挣钱!
视图 view
视图是数据库的对象之一。 视图也叫做虚表,既虚拟表,本质是对应一条select 语句,
select语句的结果集赋予一个名字就是视图的名字。
作用:
1.可以简化复杂的查询
2.可以限制数据的访问,对基表的其他数据起到安全和保密的作用。
创建一个 表create table emp(
empno number(6), name char(10), id number(4), deptno number(10), job varchar2(10) );
*创建视图:create view emp_v as
创建视图时,create对应的表叫做基表。* 查询视图select *from emp_v 根据查询所的方式可分为三种视图:1.简单视图:根据单表建立的,且不包含任何函数运算,表达式和分组,既单表的子集。2.复杂视图:根据单表建立,包含有单行函数/表达式/分组的视图。3.连接视图:基于多表建立的视图。*删除视图drop view emp_v
*简单视图可以进行DML *** 作,但是复杂视图不允许DML *** 作。
修改视图:视图的结构取决于对应的子查询,所以修改视图即替换对应
的子查询。REPLACE
CREATE OR REPLACE VIEW V_EMP_J
AS
SELECT EMPNO,ENAME,SAL
FROM EMP_XIAOJIE
SELECT * FROM V_EMP_J
对视图的不当DML *** 作会污染基表数据:
对简单视图进行DML *** 作后,视图对基表做对应的 *** 作,但是影响的数据对应视图来说
是不可见的,就是对基表数据的污染。
为了避免视图对基表产生数据的污染。我们可以对视图添加检查选项要求(检查约束)
使其对视图进行DML时 *** 作时检查视图时 *** 作后是否对 *** 作的数据可见,如果不可见
则不允许 *** 作。
*简单视图可以进行DML *** 作,但是复杂视图不允许DML *** 作。
视图本身是不包含数据的,只是基表的逻辑映射,所以
对视图执行DML *** 作时,实际上 *** 作的是基表。
对视图进行DML *** 作,实际上是对基表进行DML *** 作,
如果不去约束,我们对视图不可视进行DML *** 作会对
基表的数据产生污染。
对视图进行DML *** 作基本原则:
*简单视图可以进行DML *** 作,但是有以下情况除外,
基表中定义了非空列,但是简单视图对应的 SELECT
语句没有包含这个非空列,导致非空列对于视图不可视,
这时无法对视图进行 INSERT *** 作。
*复杂视图不允许DML *** 作
*DML *** 作不能违反基表的约束条件。
创建具有 CHECK OPTION 的约束视图。
CREATE OR REPLACE VIEW V_EMP_J
AS
SELECT EMPNO,ENAME,SAL
FROM EMP_XIAOJIE
WHERE SAL<3000
WITH CHECK OPTION--添加约束后无法对基表进行数据污染。
SELECT * FROM V_EMP_J
创建具有 READ ONLY 约束的视图。
对简单进行DML *** 作是合法的但是不安全,如果没有在视图进行DML
*** 作的必要的话,要在建立视图时声明只读来避免这种情况,包含
基表数据不会被非法的修改。
无法对只读视图执行DML *** 作。
CREATE OR REPLACE VIEW V_EMP_J
AS
SELECT EMPNO,ENAME,SAL
FROM EMP_XIAOJIE
WHERE SAL<3000
WITH READ ONLY--用来只读
数据字典:
数据字典是一系列的表,这些表的数据由数据库自行维护,记录清单清单信息。
1.在数据字典 user_objects 中查询所有视图:
SELECT object_name FROM user_objects
where object_type='VIEW'--查找所有视图
view:视图 table:表 sequence:序列 index:索引
2.在数据字典 USER_VIEWS 查询所有的指定视图:
3.在数据字典 user_updatable_columns 中查询视图:
SELECT COLUMN_NAME,INSERTABLE,UPDATABLE,DELETABLE --看 *** 作权限
FROM USER_UPDATABLE_COLUMNS
WHERE TABLE_NAME='V_EMP_J'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)