sql的几个数据字典
v$sqltext 存储的是完整的SQL,SQL被分割 SQL> desc v$sqltext Name Null? Type ----------------------------------------- -------- ---------------------------- ADDRESS RAW(4) --------- HASH_VALUE NUMBER --------- 和 address 一起唯一标志一条sql COMMAND_TYPE NUMBER PIECE NUMBER ---------- 分片之后的顺序编号 SQL_TEXT VARCHAR2(64) -------------- 注意长度[@more@]v$sqlarea --------- 存储的SQL 和一些相关的信息,比如累计的执行次数,逻辑读,物理读等统计信息 SQL> desc v$s
分析函数
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。常用的分析函数如下所列:row_number() over(partition by ... order by ...)rank() over(partition by ... order by ...)dense_rank() over(partition by ... order by ...)count() over(partition by ... order by ...)max() over(partition by ... order by ...)min() over(partition by ... order by ...)sum() over(partition by ... order by ...)avg() over(partition by .
行分链与行迁移
行分链与行迁移----------------如果经常删除,那么可能不能重用块中的自由空间,所以对于这种情况,我们要利用空间的话,可以把pctused设置高点主要是在INSERT操作期间引发行分链操作。而行的迁移主要由UPDATE操作引起。行链接-- 行链接: Insert or Update引起,一个Row存在不同的block中, 行不同部分通过不同块地址(ROWID)链成一个链,可以通过设置大的DB_BLOCK_SIZE来减少行链接的发生,但无法避免(LOB) -- 行迁移: Update引起,由于PCTFREE过小,ROWID未变, 可以通过增大PCTFREE的值减少行迁移的发生 ------行分链是DB_BLOCK_SIZE设置不够大,
oracle中的角色
安全的实现 在多用户环境中,有效管理Oracle数据库最重要的方面就是创建一个安全模式来控制对数据库的访问和更改。在一个Oracle中,可以对单独的用户或数据库角色授予安全许可。 安全管理一般在3个级别中执行: ·数据库级 ·操作系统级 ·网络安全级 用户名、权限、组和角色 DBA或数据库安全管理员创建用户名(username)来提供有效的用户标识符,用来和数据库连接。在安装过程中自动创建两个赋予DBA角色的用户账号:SYS和SYSTEM。 角色(role)是权限的命名组,可以被创建、更改
外连接的两种写法的总结
最近发现自己对外关联比较模糊,特别是使用oracle老风格的(+)与ANSI风格的外关联的时候。今天下午没什么事情自己整理了一下子。--无其他条件select * from n_fwy_a a left join n_fwy_b b on a.id=b.id order by a.id;select * from n_fwy_a a ,n_fwy_b b where a.id=b.id(+) order by a.id;这两重写法的查询的结果一致--在主表加附加条件select * from n_fwy_a a ,n_fwy_b b where a.id=b.id(+) and a.id >5 order by a.id;select * from n_fwy_a a left join n_fwy_b b on a.id=b.id where a.id>5 order by a.id;select * from n_
好长时间没有写日记了!
唉!好久没有写日记了! 也好久没有更新我的博客了! 最近对自己的未来和职业方向,突然感到比较迷茫。在新大陆也待了快半年了,总是觉得现在从事的工作与我想从事的工作方向有所偏离。常常关注51job上的工作机会,又发现南京的工作机会不是很多,唉!郁闷中! 最近发现自己顾着一些琐事而没有去学习新的东西,有点颓废哟!现在发现自己一看到英文就头疼,想想大学里,花了那么多的时间和精力去学的东西,现在却很少用到,真有点遗憾! Pick up English, and keep on good good study and day day up ,please ! [@more@]
dbms_stats包介绍
ORACLE数据库的PL/SQL语句执行的优化器,有基于代价的优化器(CBO)和基于规则的优化器(RBO)。oracle推荐使用CBO优化器,RBO基于一套严格的语法规则,sql只要按照严格的语法规则书写,不管表和索引是否改变,都不影响PL/SQL的执行计划。CBO自ORACLE 7版被引入,ORACLE自7版以来采用的许多新技术都是只基于CBO的,如星型连接排列查询,哈希连接查询,反向索引,索引表,分区表和并行查询等。CBO计算各种可能"执行计划"的"代价",即cost,从中选用cost最低的方案,作为实际运行方案。各"执行计划"的cost的计
关于dbms_stats和Analyze的比较分析
1. 对于分区表,建议使用DBMS-STATS,而不是使用Analyze语句。a) 可以在不同级别上Compute Statistics:单个分区,子分区,全表,所有分区 b) 可以倒出统计信息 c) 可以用户自动收集统计信息 2. DBMS_STATS的缺点 a) 不能Validate Structure b) 不能收集CHAINED ROWS, 不能收集CLUSTER TABLE的信息,这两个仍旧需要使用Analyze语句。c) DBMS_STATS 默认不对索引进行Analyze,因为默认Cascade是False,需要手工指定为True 3. 对于oracle 9里面的External Table,Analyze不能使用,只能使用DBMS_STATS来收集信息。[@more@]
修改列
数据库中存储数据的方式:规则表---〉分区表索引组织表簇 修改列名alter table 表明 rename column rename 老列名 to 新列名添加 字段alter table 表名 add(字段名 类型);删除字段alter table 表名 drop column 字段名修改列属性alter table 表名 modify (字段名 新属性)设置某一个字段为无用状态alter table 表名 set unuesed column 字段名删除无用字段alert table 表名 drop unused cloumns添加主键alert table 表名 add constraint pkKey primary key(字段列表)表分区oracle 允许用户对标进一步的规划,即对标进一步的拆分,将表
SQL*Plus常用命令
show和set命令是两条用于维护SQL*Plus系统变量的命令 SQL> show all --查看所有68个系统变量值 SQL> show user --显示当前连接用户 SQL> show error --显示错误 SQL> set heading off --禁止输出列标题,默认值为ON[@more@]show和set命令是两条用于维护SQL*Plus系统变量的命令 SQL> show all --查看所有68个系统变量值 SQL> show user --显示当前连接用户 SQL> show error --显示错误 SQL> set heading off --禁止
一个有趣的左链接问题!
select /*parallel(t1,10) parallel(t2,10)*/ t1.stat_day, t1.service_code, t1.user_id,t2.area_id,t2.product_id, t2.consume_day,t2.min_call, t2.change_brand_time, t2.away_time,t2.status from mm_md_newservice_day t1 , mm_md_user_day t2 where t1.user_id=t2.user_id(+) and t1.apply_date=20070528 and t1.day_number=28 and t1.stat_day=20070528 and t2.day_number(+)=28 and t2.stat_day(+)=20070528; select /*par
用户在存储过程中拥有role的权限 的特殊性
在oracle中用户拥有的role权限在存储过程是不可用的。SQL> select * from dba_role_privs where grantee='TEST';GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE------------ ------------ ------------ ------------TEST DBA NO YES--用户拥有DBA这个role--再创建一个测试存储过程:create or replace procedure p_create_table isbeginExecute Immediate 'create table create_table(id int)';end p_create_table;--然后测试SQL> exec p_create_table;begin p_create_table; end;ORA-01031: 权限不足ORA-06512: 在"TEST.P_C
CREATE DATABASE LINK
CREATE DATABASE LINK PurposeUse the CREATE DATABASE LINK statement to create a database link. A database link is a schema object in one database that enables you to access objects on another database. The other database need not be an Oracle Database system. However, to access non-Oracle systems you must use Oracle Heterogeneous Services.Once you have created a database link, you can use it to refer to tables and views on the other database. In SQL statements, you can refer to a table or view on
建dblink语法!
CREATE [ SHARED ] [ PUBLIC ] DATABASE LINK dblink [ CONNECT TO { CURRENT_USER | user IDENTIFIED BY password [ dblink_authentication ] } | dblink_authentication ] [ USING 'connect_string' ] ; [@more@]
关于db_link
create dblink three mothod:1.CREATE PUBLIC DATABASE LINK hq USING 'hq';A local user accessing a database link in which no fixed username and password have been specified. If SYSTEM accesses a public link in a query, then the connected user is SYSTEM, and Oracle connects to the SYSTEM schema in the remote database. 2.CREATE PUBLIC DATABASE LINK hq CONNECT TO CURRENT_USER using 'hq';A global user in a CURRENT_USER database link. The global user must be authenticated by an X.509 certificate (an SSL
我面试中遇到的一个类似题目!
SQL题:请用一条SQL查询(ORACLE)语言实现行列转换假设有张学生成绩表(CJ)如下 [姓名] [学科] [成绩] 张三 语文 80 张三 数学 90 张三 物理 85 李四 语文 85 李四 数学 92 李四 物理 82 王五 数学 60 想变成 [姓名] [语文] [数学] [物理] 张三 80 90 85 李四 85 92 82 王五 null 60 null select 姓名,nvl(sum(语文),-1) as 语文,nvl(sum(数学),-1) as 数学,nvl(sum(物理),-1) as 物理from ( select 姓名, case when cource=语文 then 成绩else null end as 语文, case when cource=数学 then 成绩 else null end as 数学, case when cour
工作也快满一个月了!
今天是4.26号了,来南京也有一个月了,总想写点什么,可是我这人就是这样:心里想得很多,可是真正写起来就那么几句。我就来谈谈自己在工作中的一些想法吧! 以前在学校里也接触到数据,自己也看了抱着数据库优化的书看了几遍,可真正把那些原理实现到实际的不多,让我记忆最深的是,在做毕业设计的时候查专利信息库中的东西时,因为自己添加了一个索引,使得查询的时间从一个多时变成三四分钟,当时数据库里有10多万条记录,那时候觉得数据量好多哟,有10多万条记录。工作之后呢!每天接触的的表格是上千条记录的,甚至上千万条记
linux命令大全
名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案) 参数: -n 或 --number 由 1 开始对所有输出的行数编号 -b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号 -s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行 -v 或 --show-nonprinting 范例: cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里 cat -b textfile1 textfile2 >&
Essbase中Application和Database在异构环境下的迁移
项目开发过程中,Essbase通常会被部署在异构环境中。例如,采用windows作为开发环境,Unix作为生产环境。虽然Essbase的备份策略是基于文件方式的,也就是说,备份的时候,只要把有价值的文件备份即可,但是不同操作系统间的文件格式不尽相同,在Unix下的文件拷贝到windows下并不能直接使用。 本文以Unix到Windows的迁移过程为例,描述异构环境下的应用迁移 Essbase中的文件按照是否平台兼容,可分为两类:1、compatible file,指平台兼容文件,在不同操作系统下通用,通常为文本文件包括: 1)Text file: .csc文件 - 计算脚本
ESSBASE安全性
ESSBASE安全性 1. 在ESSBASE 6.5.4.2 版本中,安全是基于软件本身的,没有基于操作系统的权限系统。 并且安全信息全部保存在安装目录下的 ESSBASE.SEC 中。 ESSBASE.BAK 保存上次登录成功的帐号,若要恢复上次的帐号,则将该文件改为 ESSBASE.SEC 就可以。 2. 若密码丢失,则可以将 ESSBASE.SEC 删除,重新启动ESSBASE,则可以重新设置密码。 3. 总的来说,这个版本的安全性比较低Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1563681[@more@]