代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
PLSQL
】
分析某用户下的表及索引
作者:
dezai
/ 发布于
2012/9/19
/
995
--分析某用户下的表及索引
<div>################################################################ analyze.sql --分析某用户下的表及索引(大表将以评估的方式分析) set serveroutput on size 100000 declare v_per number(3); v_start number := dbms_utility.get_time; v_end number; begin for rec in (select segment_name,segment_type,ceil(sum(bytes)/1024/1024) segment_size from user_segments group by segment_name,segment_type) loop if rec.segment_type = 'INDEX' then dbms_stats.gather_index_stats(ownname=>'???', --自己改一下 INDNAME=>rec.segment_name ); -- dbms_output.put_line(rec.segment_name||' '||rec.segment_size||'m '||ceil((dbms_utility.get_time - v_start)/100)||'s'); v_start := dbms_utility.get_time; elsif rec.segment_type = 'TABLE' then case when rec.segment_size < 32 then v_per := 100; when rec.segment_size < 320 then v_per := 10; else v_per := 1; end case; dbms_stats\.gather_table_stats(OWNNAME=>'???', TABNAME=>rec.segment_name, ESTIMATE_PERCENT=>v_per, METHOD_OPT=>'FOR ALL INDEXED COLUMNS'); -- dbms_output.put_line(rec.segment_name||' '||rec.segment_size||'m '||ceil((dbms_utility.get_time - v_start)/100)||'s'); v_start := dbms_utility.get_time; end if; end loop; end; / print_table --纵向显示一行 create or replace procedure print_table( p_query in varchar2 ) AUTHID CURRENT_USER is l_theCursor integer default dbms_sql.open_cursor; l_columnValue varchar2(4000); l_status integer; l_descTbl dbms_sql.desc_tab; l_colCnt number; begin dbms_sql.parse( l_theCursor, p_query, dbms_sql.native ); dbms_sql.describe_columns( l_theCursor, l_colCnt, l_descTbl); for i in 1 .. l_colCnt loop dbms_sql.define_column(l_theCursor, i, l_columnValue, 4000); end loop; l_status := dbms_sql.execute(l_theCursor); while ( dbms_sql.fetch_rows(l_theCursor) > 0 ) loop for i in 1 .. l_colCnt loop dbms_sql.column_value( l_theCursor, i, l_columnValue ); dbms_output.put_line( rpad( l_descTbl(i).col_name, 30 ) || ': ' || l_columnValue ); end loop; dbms_output.put_line( '-----------------' ); --注意如果输出的行比较多的话,要加大dbms_output.enable(值) end loop; exception when others then dbms_sql.close_cursor( l_theCursor ); RAISE; end; / grant execute on print_table to public; --该脚本是实现横向改成纵向显示 例如: 一行记录显示如下: ADMIN_MEMBER_ID : dealexpress VIEW_NAME : Deal Express BUSINESS_TYPE : 5 FIRST_NAME : Tim LAST_NAME : Horton JOB_TITLE : PROVINCE : Wisconsin COUNTRY : US PHONE_COUNTRY : 1920 PHONE_AREA : 623 PHONE_NUMBER : 9528 FAX_COUNTRY : 1920 FAX_AREA : 623 FAX_NUMBER : 9528 MOBILE_NO : ZIP : 53925 ADDRESS : 215 Robbins Rd CITY : Columbus ####################################################### </div>
试试其它关键字
分析索引
同语言下
.
查看某张表的表结构
.
oracle 集合操作
.
for 循环中倒序 用reverse
.
Oracle 临时表空间收缩
.
查看session及其对应运行的sql
.
Oracle常用查看表结构命令
.
Oracle Connect By Prior用法(实现递归查询)
.
重置排序 SEQUENCE
.
创建一个trigger
.
批量替换字段中的字符
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
dezai
贡献的其它代码
(
1065
)
.
双色球
.
列出所有物理网络适配器
.
快乐数的 Python 实现
.
计算当月还剩天数
.
猜属相
.
二十四小时时钟
.
每日一语
.
很酷的日历
.
超长日历表单
.
最简单的时钟
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3