ORACLE使用经验(转)

ORACLE使用经验

[@more@]

作者:不详 | 来自:不详 | 点击:533 | 发布:2001-11-8

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.处理表中的重复记录的方法

查找重复记录
SELECT DRAWING,DSNO
FROM EM5_PIPE_PREFAB
WHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D
WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND EM5_PIPE_PREFAB.DSNO=D.DSNO);
---- 执行上述SQL语句后就可以显示所有DRAWING和DSNO相同且重复的记录。
---- 删除重复记录:

DELETE FROM EM5_PIPE_PREFAB
WHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D
WHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING AND EM5_PIPE_PREFAB.DSNO=D.DSNO);

---- 执行上述SQL语句后就可以刪除所有DRAWING和DSNO相同且重复的记录。

可以利用这样的命令来删除表内重复记录:

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万条以上)时,这个方法的效率之差令人无法忍受,需要另想办法(可参看拙文《电信计费中长途重复话单的技术处理》,《计算机与通信》,1999-07).

返回

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命令则在事务结束之后取消了回滚段的指定.


在SQL中使用最大的回滚段的方法:

Dynamically Setting the Transaction to Use the Largest Rollback Segment in the Oracle Database

This Code of the Week entry comes from Neminath Gadgade, a Software Engineer for Eccubed Inc. in Wilton, Connecticut.

This script dynamically sets the transaction to use the largest rollback segment in PL/SQL. This is usefull for batch operations like buld data loads that contain long transactions thus eliminating the need to dynamically allocate additional extents which can reduce overall system performance.

Example

BEGIN

UseBigRollbackSegment;

. DMLS...

. DMLS...

END;

/* ***************************************************************************** */

/* Author : Neminath Gadagade. */

/* Email : ngadgade@eccubed.com */

/* Purpose: This procedure Dynamically sets transaction to use the largest */

/* available rollback Segment in the Oracle database */

/* ********************************************************************************/

CREATE OR REPLACE PROCEDURE UseBigRollbackSegment

AS

l_string VARCHAR2(200) := 'set transaction use rollback segment ';

l_open_cursor INTEGER;

l_rollback_segment VARCHAR2(30);

l_execute NUMBER ;

BEGIN

SELECT segment_name

INTO l_rollback_segment

FROM dba_rollback_segs

WHERE status='ONLINE'

AND ROWNUM=1

AND initial_extent IN (

SELECT MAX(initial_extent)

FROM dba_rollback_segs

WHERE status='ONLINE');

IF l_rollback_segment is not null then

l_string := l_string ||l_rollback_segment;

COMMIT;

l_open_cursor := dbms_sql.open_cursor;

dbms_sql.parse(l_open_cursor,l_string,dbms_sql.v7);

l_execute := dbms_sql.execute(l_open_cursor);

END IF;

EXCEPTION

WHEN OTHERS THEN

NULL;

END;

/

show errors

返回

5.使用索引的注意事项

select,update,delete 语句中的子查询应当有规律地查找少于20%的表行.如果一个语句查找的行数超过总行数的20%,它将不能通过使用索引获得性能上的提高.

---- 索引可能产生碎片,因为记录从表中删除时,相应也从表的索引中删除.表释放的空间可以再用,而索引释放的空间却不能再用.频繁进行删除操作的被索引的表,应当阶段性地重建索引,以避免在索引中造成空间碎片,影响性能.在许可的条件下,也可以阶段性地truncate表,truncate命令删除表中所有记录,也删除索引碎片.

返回

6.数据库重建应注意的问题
在利用import进行数据库重建过程中,有些视图可能会带来问题,因为结构输入的顺序可能造成视图的输入先于它低层次表的输入,这样建立视图就会失败.要解决这一问题,可采取分两步走的方法:首先输入结构,然后输入数据.命令举例如下 (uesrname:jfcl,password:hfjf,host sting:ora1,数据文件:expdata.dmp):

imp jfcl/hfjf@ora1 file=empdata.dmp rows=N
imp jfcl/hfjf@ora1 file=empdata.dmp full=Y buffer=64000
commit=Y ignore=Y

第一条命令输入所有数据库结构,但无记录.第二次输入结构和数据,64000字节提交一次.ignore=Y选项保证第二次输入既使对象存在的情况下也能成功.

返回

7: 快速编译所有视图

---- 当在把数据库倒入到新的服务器上后(数据库重建),需要将视图重新编译一遍,因为该表空间视图到其它表空间的表的连接会出现问题,可以利用PL/SQL的语言特性,快速编译。

SQL >SPOOL ON.SQL
SQL >SELECT ‘ALTER VIEW ‘||TNAME||’ COMPILE;’ FROM TAB;
SQL >SPOOL OFF
然后执行ON.SQL即可。
SQL >@ON.SQL
当然,授权和创建同义词也可以快速进行,如:
SQL >SELECT ‘GRANT SELECT ON ’||TNAME||’ TO USERNAME;’ FROM TAB;
SQL >SELECT ‘CREATE SYNONYM ‘||TNAME||’ FOR USERNAME.’||TNAME||’;’ FROM TAB;

返回

8: 怎样读写文本型操作系统文件
在PL/SQL 3.3以上的版本中,UTL_FILE包允许用户通过PL/SQL读写操作系统文件。如下:
DECALRE
FILE_HANDLE UTL_FILE.FILE_TYPE;
BEGIN
FILE_HANDLE:=UTL_FILE.FOPEN(C:’,’TEST.TXT’,’A’);
UTL_FILE.PUT_LINE(FILE_HANDLE,HELLO,IT’S A TEST TXT FILE’);
UTL_FILE.FCLOSE(FILE_HANDLE);
END;

---- 相关UTL_FILE数据库包详细信息可以参见相关资料。

返回

9: 怎样在数据库触发器中使用列的新值与旧值

---- 在数据库触发器中几乎总是要使用触发器基表的列值,如果某条语句需要某列修改前的值,使用:OLD就可以了,使用某列修改后的新值,用:NEW就可以了。如:OLD.DEPT_NO,:NEW.DEPT_NO。

返回

10:有关truncate table 与delete table对空间的影响
在删除一个表中的全部数据时,须使用TRUNCATE TABLE 表名;因为用DROP TABLE,DELETE * FROM 表名时,TABLESPACE表空间该表的占用空间并未释放,反复几次DROP,DELETE操作后,该TABLESPACE上百兆的空间就被耗光了。

返回

11: 数据库文件的移动方法

---- 当想将数据库文件移动到另外一个目录下时,可以用ALTER DATABASE命令来移动(比ALTER TABLESPACE适用性强):

---- A. 使用SERVER MANAGER关闭实例.

SVRMGR > connect internal;
SVRMGR > shutdown;
SVRMGR >exit;

---- B. 使用操作系统命令来移动数据库文件位置(假设这里操作系统为SOLARIS 2.6). 在UNIX中用 mv命令可以把文件移动到新的位置,

#mv /ora13/orarun/document.dbf /ora12/orarun

---- C. 装载数据库并用alter database命令来改变数据库中的文件名.
SVRMGR > connect internal;
SVRMGR > startup mount RUN73;
SVRMGR > alter database rename file
> ‘/ ora13/orarun/document.dbf’
> ‘/ ora12/orarun/document.dbf’;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9417382/viewspace-932294/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9417382/viewspace-932294/

关于深度可分离卷积 关于深度学习中的深度可分离卷积 阅读详情

相关推荐

锐浪报表 Grid++Report 子报表 Delphi

锐浪报表 Grid++Report 是国内较好的报表控件,本人一直使用它,做出很多特色的报表。可以说你的报表设计出来,它基本上能做出来。 但是它帮助文件上,说的不深,近期因为要做一个有关社工的报表,大表中,嵌套2个子表。可以说,一个表到三个数据集,分别打印。 在认真看了帮助的基础上,网上探索,基本无此类,特别是Delphi的帮助,几乎为零。经二天摸索,做出来了。 一、设计思路 1、大表和二个小表,可以设计为三个表,分别使用三个GridppReport控件,取名...

lyhoo163的专栏 9073

应该怎么用oracle,ORACLE使用经验(转)

ORACLE使用经验[@more@]作者:不详 | 来自:不详 | 点击:533 | 发布:2001-11-81.having 子句的用法having 子句对 group by 子句所确定的行组进行控制,having 子句条件中只允许涉及常量,聚组函数或group by 子句中的列.返回2.外部联接"+"的用法外部联接"+"按其在"="的左边或右边分左联接和右联接.若不带"+"运算符的表中的一个行...

weixin_39942572的博客 97

cmu15445(2024fall) project 2

project 2比p1难度要更大,代码量更大且涉及的知识更多,实现中出现的bug更多,好在是最后全部解决了。我最大的收获在于对于多线程编程的理解更深入了,实际发现解决了多个多线程相关的bug,学会了更多多线程下debug的技巧方法,也见识了更多多线程的bug情况。在之后可以更系统的学习一下多线程编程。同时学会实现B+树也是需要掌握的基础。

Jerome_Yi的博客 1559

sysbase转oracle,[原创]sysbase使用经验

现在项目组使用的数据库是Sybase,之前都是用Oralce的,在熟悉Sybase时发现Sybase的资料还是很少的(尤其网上资料),摸索很长时间后才慢慢适应过来,闲余之时,总结了下SybaseIQ的使用心得,由于之前用的的Oralce,所以有的差异也是和Oralce作的比较。希望能帮到Sybase初学者。==================================使用总结=======...

weixin_36019375的博客 572

论文代码复现 | 无人机与卡车联合配送(Python+Gurobi)(The flying sidekick traveling salesman problem)

无人机配送-代码复现The flying sidekick traveling salesman problem-Part 1文献笔记:(无人机配送-代码复现)The flying sidekick traveling salesman problem-Part 1摘要论文主要图标摘录数值实验算例结果参考文献 文献笔记:(无人机配送-代码复现)The flying sidekick traveling salesman problem-Part 1 摘要 Once limited to the milit

HsinglukLiu的博客 3万+

apm软件仿真+QGC地面站 环境搭建

本教程使用场景:apm软件仿真运行于虚拟机 ubuntu环境。qgc地面站位于windows 系统。两个环境在同一台电脑上。 一.apm仿真环境搭建 1.安装vm虚拟机及ubuntu 18。 2.ubuntu下 下载Ardupilot 飞控源码 并配置环境。 下载源码: git clone https://github.com/ArduPilot/ardupilot cd ardupilot git submodule update --init --recursive 配置所需运行的环境:

qthello 6110

ORACLE PL/SQL使用经验总结 [转]

标  题: ORACLE PL/SQL使用经验总结  发信站: 瀚海星云 (Wed Jul 16 11:37:57 2003)     这是本人工作三年的基本总结,希望对大家学习起到抛砖引玉的作用!     编写基本SQL语句  所有包含空值或与空值比较的表达式,结果为空值。  在各种数据类型中,只有NUMBER数据类型的默认显示是靠右对齐的,而CHAR, DATE和VARC  HAR2是靠左对齐...

weixin_34240520的博客 138

智能体评测技术与实践:从评估维度到DeepEval实战指南

智能体评测技术与实践:从评估维度到DeepEval实战指南 本文系统探讨了AI智能体的评测体系与实践方法。首先从四个关键维度构建评估框架:基础能力(意图理解、知识完整性)、复杂任务(多轮对话、动态工作流)、可靠性(幻觉抑制、安全合规)以及工具效率(参数填充、多工具协同)。其次分析了主流评测工具,包括xBench的动态双轨评估、DeepEval的全链路监控等解决方案。最后详细介绍了DeepEval的实战应用,涵盖环境配置、测试用例构建、指标配置及CI/CD集成,展示了如何通过代码化评估实现智能体质量的持续提升

Linda的自动化测试之旅 3414

Oracle数据库系统使用经验六则(转)

Oracle数据库系统使用经验六则(转)[@more@]   1.having 子句的用法   having 子句对 group by 子句所确定的行组进行控制,having 子句条件中只允许涉及常量,聚组函数或group ...

cuiji1279的博客 90

SAP RAP 里的 EML 全解:从语言定位到事务语义,再到真实案例的落地方式

摘要:EML(Entity Manipulation Language)是ABAP RAP模型的核心组件,作为ABAP的子集用于操作业务对象(BO)。它通过声明式语法(READ/MODIFY/EXECUTE/COMMIT)统一访问BO的行为与数据,并由RAP运行时自动处理校验、锁定、草稿管理等生命周期。EML将业务语义融入代码,确保与Fiori应用共享同一套校验逻辑,并通过FAILED/REPORTED/MAPPED管道传递错误与消息。其事务控制(IN LOCAL MODE与COMMIT ENTITIES)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 528

Win11更新导致TIA博途许可证出现问题的解决办法汇总

Win11更新导致TIA博途许可证出现问题的解决办法汇总

Robot_PLC_HMI_Automation 9891

oracle 8i exp,Oracle8i/9i EXP/IMP使用经验2(转)

核心提示:四、不同版本的EXP/IMP问题?一般来说,从低版本导入到高版本问题不大,麻烦的是将高版本的数据导入到低版本中,在Oracle9i之前,不同版本Oracle之间的EXP/IMP可以通过下面的方法来解决: 1、在高版本数据库上运行底版本的catexp.sql; 2、使用低版本的EXP来导出高版.....四、不同版本的EXP/IMP问题?一般来说,从低版本导入到高版本问题不大,麻烦的是将高版...

weixin_35574537的博客 167

Aurix TC3xx系列MCU DMA模块配置方法(二)

本文主要基于英飞凌Aurix TC3xx系列MCU,通过EB tresos配置工具,介绍DMA驱动模块的配置方法。

m0_38045338的博客 2850

oracle 8i exp,Oracle8i/9i EXP/IMP使用经验1(转)

Oracle8i/9i EXP/IMP使用经验 (1)作者: 来源:核心提示:一、8i EXP常用选项 1、FULL,这个用于导出整个数据库,在ROWS=N一起使用时,可以导出整个数据库的结构。 例如: exp sys file = . / db_str.dmp log = . / db_str. log full = y rows = n compress = y direct = y 2、BU...

weixin_42126865的博客 321

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

oracle数据库转换到Sqlserver的几点经验

应广大朋友的要求,本人将《PB-ORACLE通用开发框架2.1》版本的程序成功转换到SQLServer下,下面是我总结的几条经验,与大家分享,有不正确的地方,请批评指正。谢谢!kingfriend1111@163.com1.数据类型的转换  建立两个数据源basedb, basdb_sql  为每个表,建立一个数据管道,修改部分字段类型       Oracle                  

l_xiangxi program life 2357

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Mysql转Oracle的经验分享

mysql转oracle

qq_39052947的博客 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

亲自体验oracle转mysql

364

分享一下学习Oracle的经验

 分享一下学习Oracle的经验主持人: 由于时间的关系我们就不多讲了,最后一个问题我想让大家跟网友们分享一下学习Oracle的经验,包括推荐一些好的书。跟网友分享一下学习Oracle的经验。     石树斌: 我很早就接触Oracle了,从Oracle7版本就开始了,但是我觉得我做的比较杂,从应用开发、数据库、项目管理、销售等,很多都做。    我真正喜欢Oracle是2000年。200

daimin's BLOG 950

使用oracle经验,ORACLE应用经验(2)

ORACLE应用经验(2)正在看的ORACLE教程是:ORACLE应用经验(2)。 ------谁正在访问数据库?Select c.sid, c.serial#,c.usernam...

weixin_42554162的博客 163

Oracle使用经验总结

oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用。 1.having 子句的用法 having 子句对 group by 子句所确定的行组进...

145

oracle使用经验分享

使用oracle su - oracle 切换到oracle用户 sqlplus /nolog 切换到sqlplus状态 connect /as sysdba 连接到oracle管理员 startup 启动oracle cd /home/oracle/app/oracle/product/11.2.0/dbhome_1/bin/ lsnrctl start 到oracle的bin目录下重新启动 ...

阿文的博客 990

Oracle行转列、列转行的Sql语句总结(转)

多行转字符串 这个比较简单,用||或concat函数可以实现 ? 1 select concat(id,username) str from app_userselect id||username str from app_user 字符串转多列 实际上就是拆分字符串的问题,可以使用 substr、instr、regexp_substr函数方式 ...

qq_39081511的博客 3万+

qt连接oracle数据库经验总结

利用qt连接oracle数据库实战经验: 之前公司用qt开发的产品中,使用的数据库为mysql和sql server,并未用qt连接过 oracle数据库。因此,只能通过百度查资料的方式解决问题。 注意:使用qt连接oracle数据库(即使远程连接),必须在本地安装oracle客户端。 开发工具:QT5.4.0(32位), Oracle 11g(64位) 1、由于

u011505792的博客 5923

使用oracle经验,ORACLE应用经验

ORACLE应用经验------谁正在访问数据库?Select c.sid, c.serial#,c.username,a.object_id,b.object_name,c.program,c.status,d.name,c.osuserfrom v$Locked_object a,All_objects b,v$session c,audit_actions dwhere a.object_i...

weixin_39664431的博客 99

Oracle中横表转纵表

本文的横表存储的是特征数据,表的数据结构是经常会变化的,比如添加特征操作。 特征表设计为横表操作不灵活,别人在引用特征时也将受到这种变化影响,增加特征后也可能带来数据异常。此外,特征数量庞大之后,选用特征也会及其不便。 所以我们考虑将关联得到的横表,转化为纵表进行存储。 代码操作的数据库为:Oracle 值得注意的是横表转纵表后,为了统一数据类型,一般统一存储为string类型。 with t...

fwj_ntu的博客 7238

[转帖]Oracle 12cR2使用经验

大规模升级来临,谈谈Oracle 12cR2使用经验 随着2019年2月13日,Oracle 19c (Oracle 12.2.0.3) for Exadata 版本发布,Oracle 12cR2体系的数据库版本终于迎来了长期支持版本(Oracle 12c的最后一个大版本),也就是说数据库版本还在Oracle 10g/11g的系统是时候考虑升级了。 http://database.51...

weixin_30456039的博客 601
上一篇: Oracle数据库碎片整理(转)
下一篇: Oracle的Index-1(转)
congwan5321
博客等级 码龄11年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值