169it科技资讯


当前位置:  数据库>其它
本页文章导读:
    ▪如何处理undo tablespace 表空间太大的问题      如何处理undo tablespace 表空间太大的问题  (1)-- 创建一个新的小空间的undo tablespace  create undo tablespace undotBS4 datafile 'C:\oracle\oradata\dzq\eoffice\UNDOTBS4.DBF' size 500m;  (2)-- 设置新的表空间为......
    ▪ado执行存储过程中包含结果集获取输出参数为VT_EMPTY      ado执行存储过程,如果存储过程中包含结果集返回和输出参数,会导致获取输出参数为VT_EMPTY。目前没有找到对应的原因,网上有提相关问题但是也没人解决。有哪位大侠知道原因的请留个言......
    ▪oracle函数的demo      create or replace function transformPartition(minS in number,                                               maxS in number)   return......

[1]如何处理undo tablespace 表空间太大的问题
    来源: 互联网  发布时间: 2013-11-15
如何处理undo tablespace 表空间太大的问题
 (1)-- 创建一个新的小空间的undo tablespace
 create undo tablespace undotBS4 datafile 'C:\oracle\oradata\dzq\eoffice\UNDOTBS4.DBF' size 500m;
 (2)-- 设置新的表空间为系统undo_tablespace
 alter system set undo_tablespace=undotBS4;
 (3)-- Drop 旧的表空间
 drop tablespace undotbs3 including contents;
==================================================================
-查看表空间明称
select name from v$tablespace;
- 检查数据库UNDO表空间占用空间情况以及数据文件存放位置
select file_name,bytes/1024/1024 from dba_data_files  where tablespace_name like 'UNDOTBS2';
-查看回滚段的使用情况,哪个用户正在使用回滚段的资源,如果有用户最好更换时间(特别是生产环境)
select s.username, u.name from v$transaction t,v$rollstat r, v$rollname u,v$session s where s.taddr=t.addr and t.xidusn=r.usn and r.usn=u.usn order by s.username;
-创建新的UNDO表空间,并设置自动扩展参数
create undo tablespace undotbs1 datafile '/oradata/oradata/ddptest/UNDOTBS1.dbf' size 1000m reuse autoextend on next 800m maxsize unlimited;
-查看每十分钟记录一次这段时间内使用的undo block数量
select begin_time,end_time, undoblks from v$undosta
 
 
 
http://blog.csdn.net/robinson_0612/article/details/6041207
 
 
 
Oracle审计表AUD$数据过大问题
How to truncate or delete rows from audit trail table sys.aud$

1)Only appropriate privileged user can do delete operation on SYS.AUD$ table. The user must have either of the following privileges.
-SYS user.
-DELETE ANY TABLE system privilege. (If O7_DICTIONARY_ACCESSIBILITY=TRUE)
-A user to whom SYS has granted the object privilege DELETE on SYS.AUD$ table.

2)Before deleting any rows you may want to archive the table. You can achive this by creating a table from SYS.AUD$ and export that. Don't export SYS.AUD$ directly.
SQL>CREATE TABLE AUDIT_RECORD TABLESPACE users as select * from SYS.AUD$;
Now export the table as,
SQL> host exp tables=AUDIT_RECORD file=audit_record.dmp

3)To delete all records from audit trail table SYS.AUD$ issue,
SQL>DELETE FROM SYS.AUD$;

To delete all records of particular audited table from the audit trail issue,
SQL>DELETE FROM sys.aud$ WHERE obj$name='&table_nmae';

But deleting in this way will not reduce size on the system tablespace or aud$ table. In order to reduce size follow section 4.

4)Truncate audit table to reduce size.
SQL>CONN / as sysdba
SQL>TRUNCATE TABLE SYS.AUD$

 

 
在ITPUB上有朋友遇到SYSTEM表空间快速扩展的问题

系统表空间异常扩展的情况遇到过很多:
有的和用户表空间或对象分配不当有关
有的和高级复制的空间使用有关....

经过如下代码查询,可以找出系统表空间中占用空间最多的Top9对象:
col segment_name for a25
col owner for a10
SELECT *
  FROM (SELECT   BYTES, segment_name, segment_type, owner
            FROM dba_segments
           WHERE tablespace_name = 'SYSTEM'
        ORDER BY BYTES DESC)
 WHERE ROWNUM < 10
/

这个朋友的Top9对象为:
1    3082174464  IDL_UB1$	TABLE	SYS
2    63979520      SOURCE$	TABLE	SYS
3    12075008      IDL_UB2$	TABLE	SYS
4    7749632	      DEPENDENCY$	TABLE	SYS
5    7356416	      I_DEPENDENCY2	INDEX	SYS
6    6438912	      I_DEPENDENCY1	INDEX	SYS
7    5521408	      I_IDL_UB11  	INDEX	SYS
8    4341760	      IDL_SB4$	TABLE	SYS
9    3555328	      I_ACCESS1  	INDEX	SYS

我们注意到占用空间最大的对象是IDL_UB1$系统表,空间占用近3G,那么这个表是做什么用的呢?
从sql.bsq中我们可以找到这个表的创建语句:
create table idl_ub1$                            /* idl table for ub1 pieces */
( obj#          number not null,                            /* object number */
  part          number not null,
         /* part: 0 = diana, 1 = portable pcode, 2 = machine-dependent pcode */
  version       number,                                    /* version number */
  piece#        number not null,                             /* piece number */
  length        number not null,                             /* piece length */
  piece         long raw not null)                              /* ub1 piece */
  storage (initial 10k next 100k maxextents unlimited pctincrease 0)
/


idl_ub1$表是用来存储PL/SQL的代码单元的,包括DIANA等,IDL在这里代表Interface Definition Language.
这个对象的含义可以从Ixora找到一点提示:
It is an intermediate language in which the structure of database tables and the logic of PL/SQL program units can be consistently represented as attributed trees. Oracle uses the DIANA IDL, which comes from compilers for the Ada programming language. DIANA stands for Descriptive Intermediate Attributed Notation for Ada. Anyway, this is one of four tables in the data dictionary used to store the DIANA for PL/SQL program units, and the database objects that they reference.

在高级复制中会用到这个表,所以可能导致这个表快速增长,在Oracle10g之前,高级复制需要考虑的事情的确很多。
作者:chen3888015 发表于2013-3-18 17:31:53 原文链接
阅读:0 评论:0 查看评论

    
[2]ado执行存储过程中包含结果集获取输出参数为VT_EMPTY
    来源: 互联网  发布时间: 2013-11-15

ado执行存储过程,如果存储过程中包含结果集返回和输出参数,会导致获取输出参数为VT_EMPTY。目前没有找到对应的原因,网上有提相关问题但是也没人解决。有哪位大侠知道原因的请留个言,也为其他开发人员提供一个解决思路。

我目前的解决方法只能针对我遇到的情况。因为我使用的存储过程的返回结果集是中间结果集,不需要使用到,因此只要把返回结果集给去掉就行。不返回结果集的方法是在存储过程中加入SET NOCOUNT ON。

SET NOCOUNT
使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息。

语法
SET NOCOUNT { ON | OFF }

注释
当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。

即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。

当 SET NOCOUNT 为 ON 时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息。当使用 Microsoft® SQL Server™ 提供的实用工具执行查询时,在 Transact-SQL 语句(如 SELECT、INSERT、UPDATE 和 DELETE)结束时将不会在查询结果中显示"nn rows affected"。

如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。

作者:imlmy 发表于2013-3-18 16:46:54 原文链接
阅读:46 评论:0 查看评论

    
[3]oracle函数的demo
    来源: 互联网  发布时间: 2013-11-15
create or replace function transformPartition(minS in number,
                                              maxS in number)
  return varchar2 is
  Result varchar2(5000);
  minNum number;
  maxNum number;
begin
  select trunc(minS / 300001, 0) + 1 into minNum from dual;
  select trunc(maxS / 300001, 0) + 1 into maxNum from dual;


  while minNum <= maxNum loop
    Result := Result || 'PART_' || minNum || '/';
    minNum := minNum + 1;
  end loop;
  return(Result);
end transformPartition;
作者:liu00614 发表于2013-3-18 16:44:00 原文链接
阅读:46 评论:0 查看评论

    
最新技术文章:
▪gc buffer busy/gcs log flush sync与log file sync    ▪让你的PL/SQL更好用    ▪ADO.NET中的非脱机数据库查询
▪参数job_queue_processes与Oracle jobs    ▪11gR2游标共享新特性带来的一些问题以及_cursor    ▪_library_cache_advice和latch:shared pool、latch:shared poo
▪SQL: Date Utility    ▪DB2 分区表增加分区    ▪DB2第一步 — 创建表
▪oracle 数据库    ▪插入10万条记录测试    ▪rebuild index VS. rebuild index online
▪如何处理undo tablespace 表空间太大的问题    ▪ado执行存储过程中包含结果集获取输出参数为    ▪oracle函数的demo
▪Entity Framework 学习建议及自学资源    ▪存储过程的编写    ▪Linux/Unix shell 自动发送AWR report(二)
▪第二章 Oracle恢复内部原理(基础数据结构)    ▪Redis源码学习之【Tcp Socket封装】    ▪Java Jdbc减少与Oracle之间交互提升批量处理性能
▪南大通用GBase8a Vs Oracle11g 单机测试亲测    ▪oracle 中行列转换    ▪rhel下安装oracle10g+asm---测试环境搭建
▪Redis系列-主从复制配置    ▪MySQL索引与查询优化    ▪INDEX受到NULL值的影响
▪测试人员的SQL语言 系列    ▪SQL数据库基本语句    ▪MySQL Replication常见错误整理[持续更新...]
▪eclipse下建立esper的demo    ▪把oracle rac 转化为单机数据库    ▪Redis系列-存储篇sorted set主要操作函数小结
▪基本的SQL*Plus报表和命令    ▪druid简单教程    ▪11g调度--scheduler使用
▪EF基础一    ▪db2存储过程中循环语句while do的continue有没有    ▪oracle 创建DBLINK
▪DB2数据库备份还原    ▪Warning: prerequisite DBD::mysql 1 not found错误解决方    ▪innotop性能监视mysql,innodb工具
▪数据迁移:DataGuard配置    ▪QX项目实战-19.跨库数据同步    ▪Mysql EXPLAIN
▪Oracle 11g AWR 系列七:Active Session History (ASH) 报    ▪Oracle 11G新特性(共36个)    ▪父子节点问题
▪OEM简介及按钮乱码问题    ▪NoSql之MongoDB的常用类管理    ▪ORA-39700: database must be opened with UPGRADE option
▪node.js 访问redis数据库,pub/sub    ▪使用DBMS_REDEFINITION在线重定义分区表    ▪SQL Developer 使用问题与解决方法汇总
▪oralce 11g dataguard 概念    ▪ORA-30004 错误处理    ▪oracle分组函数rollup,cube
▪Sql Developer 使用问题与解决方法汇总    ▪Configure Oracle Dataguard Primary-ASM to Physical-ASM    ▪Oracle Data Guard 理论知识
▪Control File 恢复    ▪Oracle数据文件收缩    ▪Oracle 11g AWR 系列五:如何生成 AWR 报告?
▪Wireshark数据包分析实战(第2版)    ▪MySql用户权限控制    ▪db2和oracle查询序列区别
▪更新blob字段的存储过程    ▪MySQLReport分析报告三    ▪DB2中的序列
▪Oracle中DBMS_RANDOM.STRING 的用法    ▪SQL SERVER无法安装成功,sqlstp.log文件提示[未发    ▪Data Guard 部署物理备库的 10 大注意事项
▪万能数据库查询分析器使用技巧之(九)    ▪SQL 自定义Split函数    ▪视图 v$sql,v$sqlarea,$sqltext,v$sqltext_with_newlines 的
▪Data Guard Standby_archive_dest 和 Log_archive_dest_n 的    ▪机房收费系统数据库设计(一)    ▪利用putty的SSH tunnel连接Oracle
▪DBCA建库偶遇ORA-27125    ▪使用PowerPivot建立简单的分析模型    ▪Linux/Unix shell 自动发送AWR report
▪写入到blob字段的存储过程    ▪关于JDBC中ResultSet接口的一点细节探究    ▪Data Guard 配置 Standby Redo Log
▪linux下redis的安装    ▪windows下redis的安装    ▪手动创建数据库步骤(简单翻译官方文档)
▪Ubuntu安装Mongodb    ▪SQL CLR应用    ▪redis的配置文件参数--详细说明
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号