ORACLE
文章平均质量分 54
xuyuhai
这个作者很懒,什么都没留下…
展开
-
更改Oracle数据库表的表空间
在Oracle数据库管理系统中,创建库表(table)时要分配一个表空间(tablespace),如果未指定表空间,则使用系统用户确省的表空间。在Oracle实际应用中,我们可能会遇到这样的问题。处于性能或者其他方面的考虑,需要改变某个表或者是某个用户的所有表的表空间。通常的做法就是首先将表删除,然后重新建表,在新建表时将表空间指定到我们需要改变的表空间。如果该用户已经保存了大量数据,这种办法转载 2010-05-11 17:18:00 · 724 阅读 · 0 评论 -
怎样看懂Oracle 的执行计划
<br />一、什么是执行计划 <br />An explain plan is a representation of the access path that is taken when a query is executed within Oracle. <br /><br />二、如何访问数据 <br />At the physical level Oracle reads blocks of data. The smallest amount of data read is a single Or转载 2010-12-08 17:12:00 · 460 阅读 · 0 评论 -
delete表数据,找回方法
<br />SCN(系统改变号),它的英文全拼为:System Change Number ,它是数据库中非常重要的一个数据结构。<br /> SCN提供了Oracle的内部时钟机制,可被看作逻辑时钟,这对于恢复操作是至关重要的<br /> 注释:Oracle 仅根据 SCN 执行恢复。<br /> 它定义了数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的SCN 。一些人认为 SCN 是指, System Commit Number ,而通常 SCN 在提交时才变化,所以很多原创 2010-08-25 16:33:00 · 1063 阅读 · 0 评论 -
tnsnames.ora配置小结
<br />listener.ora、 tnsnames.ora和sqlnet.ora这3个文件是关系oracle网络配置的3个主要文件,其中listener.ora是和数据库服务器端 相关,而tnsnames.ora和sqlnet.ora这2个文件不仅仅关系到服务器端,主要的还是和客户端关系紧密。<br />检查客户端oracle网络的时候可以先检查sqlnet.ora文件:<br /># SQLNET.ORA Network Configuration File: $ORACLE_HOME/NETWOR原创 2010-06-01 08:31:00 · 383 阅读 · 0 评论 -
tnsnames.ora配置小结
<br />listener.ora、 tnsnames.ora和sqlnet.ora这3个文件是关系oracle网络配置的3个主要文件,其中listener.ora是和数据库服务器端 相关,而tnsnames.ora和sqlnet.ora这2个文件不仅仅关系到服务器端,主要的还是和客户端关系紧密。<br />检查客户端oracle网络的时候可以先检查sqlnet.ora文件:<br /># SQLNET.ORA Network Configuration File: $ORACLE_HOME/NETWOR原创 2010-06-01 08:30:00 · 328 阅读 · 0 评论 -
数据库查询优化原则
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: s原创 2010-05-17 19:51:00 · 312 阅读 · 0 评论 -
oracle中truncate,delete,drop的异同点
truncate,delete,drop的异同点 注意:这里说的delete是指不带where子句的delete语句 相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index)原创 2010-05-13 13:29:00 · 309 阅读 · 0 评论 -
Oracle删除大表并回收空间的过程
近日在查询某项日志的时候,发现查询非常缓慢,根据以往的经验这是由于某个日志表过大引起的,为了加快查询,决定将大部分的历史数据迁移到另外一个表中,本文主要记录删除这个大表的过程,就解决问题而言还有很多方法,但是本文侧重点在于如何处理大数据量删除的操作,及其善后工作。首先看看我们要做数据迁移的表所占的空间:SQL> select segment_name , bytes/1048576 MB转载 2010-05-13 09:47:00 · 630 阅读 · 0 评论 -
Oracle 表删除大量数据后查询变慢问题
Oracle 表删除大量数据后,即使表中只有几行记录,但用select count(*) from table 来查询发觉都不会马上出来,原因是该表的空间大了,查询起来很慢。解决的方法是把该表所占用的表空间缩小,或者说释放表空间。alter table XXXX move; 这样处理后就释放了表空间了。但是释放表空间后,表的行号rowid会发生变化,而基于rowid的索引则转载 2010-05-13 09:45:00 · 857 阅读 · 0 评论 -
Oracle查找第n个最大值
在国内外许多Oracle DBA站点上,有很多查找表中第n个最大值的小技巧,这些语句确实相当巧妙,它们都独辟蹊径地用到了Oracle表中的一个伪字段“level”。但是在很多情况下,这个语句变成了 美丽的陷阱。如果你想知道为什么,并怎样绕过它,请听我道来!研究了几天,我发现一种衍生算法,即找出第n个和第m个最大值的差(如下):列表一:select max(salary) from empdetai转载 2010-05-13 09:14:00 · 3915 阅读 · 1 评论 -
更换ORACLE表对象所属用户
以前有个项目将用户表建立在了system用户所属下,后来发觉危害相当大,准备将表对象转移到新建立的LAND用户下,没找到直接的办法,用以下办法得以实现:1、建立新的LAND用户,在服务器的Oracle Enterprise Manager里分配 对象权限 ,添加对system中数据表对象的 select 权限。2、以 LAND 用户登录,使用命令: create table as转载 2010-05-12 13:44:00 · 4607 阅读 · 0 评论 -
EXISTS、IN、NOT EXISTS、NOT IN的区别
<br />EXISTS、IN、NOT EXISTS、NOT IN的区别(ZT)<br />EXISTS、IN、NOT EXISTS、NOT IN的区别:<br /><br /><br />in适合内外表都很大的情况,exists适合外表结果集很小的情况。<br />exists 和 in 使用一例 <br />=========================================================== <br />今天市场报告有个sql及慢,运行需要20多分钟,如下:<br />原创 2010-11-24 11:22:00 · 349 阅读 · 0 评论