oracle数据库好用,怎么才能更好的使用Oracle数据库系统?
1。having子句的使用方法
having子句对group by 子句所确定的行组进行控制,having 子句条件中只允许涉及常量,聚组函数或group by子句中的列。
2。外部联接 "+ "的使用方法
外部联接 "+ "按其在 "= "的左边或右边分左联接和右联接。
若不带 "+ "运算符的表中的一个行不直接匹配于带 "+ "预算符的表中的任何行,则前者的行与后者中的一个空行相匹配并被返回。若二者均不带′+′,则二者中无法匹配的均被返回。利用外部联接 "+ ",可以替代效率十分低下的not in运算,大大提高运行速度。
例如,下面这条命令执行起来将会很慢。
select a。empno
from
emp
a
where
a。empno
not
in
(select
empno
from
emp1
where
job=´;SALE´;);
假如利用外部联接,改写命令如下:
select
a。
empno
from
emp
a
,emp1
b
where
a。empno=b。empno(+)
and
b。empno
is
null
and
b。job=´;SALE´;;
大家可以发现,运行速度明显提高。
3。
删除表内重复记录的方法
大家可以利用这样的命令来删除表内重复记录:
delete
from
table_name
a
where
rowid <
(select
max(rowid)
from
table_name
where
column1=a。
column1
and
column2=a。column2
and
colum3=a。colum3
and
……);
需要注意的是,当表比较大(例如50万条以上)时,需要另想办法。
4。set transaction命令的用法
在执行大事务时,Oracle有时会报如下错误:
ORA-01555:snapshot
too
old
(rollback
segment
too
small)
这说明Oracle给此事务随机分配的回滚段太小了,这时可以为它指定一个足够大的回滚段,以确保这个事务的成功执行。
例如:
set
transaction
use
rollback
segment
roll_abc;
delete
from
table_name
where
……
commit;
回滚段roll_abc被指定给这个delete事务,commit命令则在事务结束之后取消了回滚段的指定。
5。使用索引的注意事项
select,update,delete 语句中的子查询应当有规律地查找少于20%的表行。如果一个语句查找的行数超过总行数的20%,它将不能通过使用索引获得性能上的提高。
索引可能产生碎片,因为记录从表中删除时,相应也从表的索引中删除。
表释放的空间可以再用,而索引释放的空间却不能再用。频繁进行删除操作的被索引的表,应当阶段性地重建索引,以避免在索引中造成空间碎片,影响性能。在许可的条件下,也可以阶段性地truncate表,truncate命令删除表中所有记录,也删除索引碎片。
6。数据库重建应注意的问题
在利用import进行数据库重建过程中,有些视图可能会带来问题,因为结构输入的顺序可能造成视图的输入先于它低层次表的输入,这样建立视图就会失败。要解决这一问题,可以采取分两步走的方法:首先输入结构,然后输入数据。
全部
oracle数据库好用,怎么才能更好的使用Oracle数据库系统?相关推荐
- 如何将oracle数据库中的表结构导入到sqlserver中,Oracle转换成SqlServer数据库的步骤...
1 背景 ITM系统目前支持MysqL.Oracle数据库,由于现在需要和CA产品进行结合,用CA产品的采集功能进行数据采集,因此需要使用CA产品的sqlServer数据库,为了使得系统支持sqlse ...
- java连接数据库 oracle,Oracle数据库之一分钟教你学会用java连接Oracle数据库
本文主要向大家介绍了Oracle数据库之一分钟教你学会用java连接Oracle数据库,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. package java_jdbc; // ...
- linux查询数据库oracle端口,Oracle数据库常用命令、Linux监听配置、oracle linux下开放1521端口...
Oracle数据库常用命令.Linux监听配置.oracle linux下开放1521端口 时间:2020-02-14 来源: 一.Linux下Oracle数据库常用命令 oracle用户下执行: $ ...
- 用Navicat连接Oracle数据库时报错ORA-28547:connection to server failed,probable Oracle Net admin error
用Navicat连接Oracle数据库时出现如下错误 上网一查原来是oci.dll版本不对.因为Navicat是通过Oracle客户端连接Oracle服务器的,Oracle的客户端分为两种,一种是标准 ...
- oracle数据库领域,菜鸟成长课程之《Oracle数据库职业直通车》,引领大家真正进入Oracle数据库领域...
课程简介: 近年来,Oracle数据库无疑是全球数据库领域中的领航者, Oracle DBA的待遇节节攀升, 导致了许多人希望转入这个行业.而Oracle数据库又因它的庞大和复杂另很多人望而却步,找不 ...
- oracle数据库集群采用的是形式,铁道部采用Oracle集群数据库进行TMIS系统“三级建库”...
综述 铁道部利用Oracle9i集群数据库系统(Oracle9i RAC),顺利开展铁道部运输管理信息系统(TMIS)的"三级建库"工程--在各铁路局和铁路分局利用Oracle9i ...
- spark连接Oracle数据库,Spark通过jdbc采用分区的方式从oracle读数据
spark通过jdbc可以从oracle中直接读取数据,返回dataframe.有时由于数据量较大,我们可以采用分区方式通过jdbc多线程并行从oracle中读取数据. - oracle中的数据如下 ...
- Linux服务器oracle数据库重启服务、重启监听方法,oracle数据库sysdba管理员登录方法
数据库重启服务.监听全套流程如下: 注: 如果是修改数据库的一些参数.配置文件只需重启数据库服务即可. 注: 如果是修改数据库 ip.端口号.实例名,只需要重启数据库监听即可. 首先通过 su - o ...
- 用Navicat连接Oracle数据库时报错ORA-28547:connection to server failed, probable Oracle Net admin error...
用Navicat连接Oracle数据库时出现如下错误 上网一查原来是oci.dll版本不对.因为Navicat是通过Oracle客户端连接Oracle服务器的,Oracle的客户端分为两种,一种是标准 ...
最新文章
- Please do not register multiple Pages in pages/buildhelp/buildhelp.js
- python中列表、字典和集合推导式
- R语言构建LogisticRegression模型并计算AUC指标
- 用javascript进行一个简单的机器学习小实例
- integer加1_利用Abaqus UEL开发自定义单元1
- 一个列表中按钮的不同样式
- python进程池:multiprocessing.pool
- a jni error has occurred_A-08 幂函数、有理函数、代数函数
- 宁波政务云资源的介绍与申请
- openstack安装指南_6种管理OpenStack的新指南
- Exec l 中分列的作用
- 嵌入式C的高级用法必须了解
- 新手做国外广告联盟lead常用工具汇总!
- C语言编写一个掷骰子猜大小游戏,用C语言模拟一种掷骰子游戏
- OpenSSL 生成CA证书及终端用户证书
- iOS开发面试和底层学习视频整理合集
- web前端牛人博客整理
- win10设置共享文件夹局域网访问
- Rust语言正在兴起,Java、Python、C的末日来临?
- 苹果退款48小时审核结果_金苹果花园车辆审核结果20191102