- 浏览: 42456 次
- 性别:
- 来自: 杭州
最新评论
文章列表
3, 删除字段
与增加字段类似,步骤相反。删除字段的时候必须记录下对应的字段属性,方便回滚。考虑字段约束的问题
4, 修改字段大小,类型,名称
短的改成长的,类型不变的话,无限制。
alter table mybook modify ccc varchar2(2 ...
功能发布当天,各组TL提供验证过的脚本(包含回滚脚本),sql脚本和回滚脚本分开放在两个txt或者sql文件中。以附件形式发送到我的邮箱(zkf18474)。需要在11点之前提供。
我们准备操作的模式是:每天刷一遍全量脚本。
这就要求每天的数据库环境都可以回滚到基线版本,对回滚脚本的要求提高。请各组TL着重检查。
一、 建表遵循基本三范式。
1, 除非基于特殊情况考虑,通常情况下每个表都要有主键
create table book
(
bookid number(19) primary key,
column …….
……..
)
也可以在表建好之后添加主键约束:
alt ...
数据库表空间整理
(数据导入方法)
刘凯 20101115
经现网查看,现网数据库表空间已全部更换
现网表空间:
TBS_MREAD_HISDAT
TBS_MREAD_HISLOG
TBS_MREAD_DAT
TBS_MREAD_IDX
本地环境表空间:
manager
mread
mread_data
idx
MREAD_HISLOG
MREAD_HISDAT
如今要与现网一致:
manager
mread TBS_MREAD_DAT
mr ...
1、提交脚本命名规范:update_姓名_日期.sql或rollback_姓名_日期.sql
表空间:tbs_mread_dat
索引表空间:tbs_mread_idx
2、每句SQL语句必须带注释 说明其功能
3、建表语句必须带上表注释和字段注释
如:
comment on table con_recommend_clabel_group
is '运营通用标签组表';
comment on column con_recommend_clabel_group.groupid
is '组id';
4、存储过程结尾必须带上/ 其他类型语句不允许
5、常用查询字段,必须创建索引
...
[Q]在不知道用户密码的时候,怎么样跳转到另外一个用户执行操作后并不影响该用户?
[A]我们通过如下的方法,可以安全使用该用户,然后再跳转回来,在某些时候比较有用
需要Alter user权限或DBA权限:
SQL> select password from dba_users where username='SCOTT';
PASSWORD
-----------------------------
F894844C34402B67
SQL> alter user scott identified by lion;
U ...
[B]第五部分、ORACLE网络与安全[/B]
[Q]如何限定特定IP访问数据库
[A]可以利用登录触发器或者是修改sqlnet.ora(9i以上):
增加如下内容:
tcp.validnode_checking=yes
#允许访问的ip
tcp.inited_nodes=(ip1,ip2,……)
#不允许访问的ip
tcp.excluded_nodes=(ip1,ip2,……)
[Q]如何穿过防火墙连接数据库
[A]这个问题只会在WIN平台出现,UNIX平台会自动解决。
解决方法:
在服务器端的SQLNET.ORA应类似 ...
[Q]如何获得所有的事件代码
[A] 事件代码范围一般从10000 to 10999,以下列出了这个范围的事件代码与信息
SET SERVEROUTPUT ON
DECLARE
err_msg VARCHAR2(120);
BEGIN
dbms_output.enable (1000000);
FOR err_num IN 10000..109 ...
[Q]如何收缩临时数据文件的大小
[A]9i以下版本采用
ALTER DATABASE DATAFILE 'file name' RESIZE 100M类似的语句
9i以上版本采用
ALTER DATABASE TEMPFILE 'file name' RESIZE 100M
注意,临时数据文件在使用时,一般不能收缩,除非关闭数据库或断开所有会话,停止对临时数据文件的使用。
[Q]怎么清理临时段
[A]可以使用如下办法
1、 使用如下语句查看一下认谁在用临时段
SELECT username,sid,serial#,sql_address,mach ...
[Q]怎么样能固定我的执行计划
[A]可以使用OUTLINE来固定SQL语句的执行计划
用如下语句可以创建一个OUTLINE
Create oe replace outline OutLn_Name on
Select Col1,Col2 from Table
where ……
如果要删除Outline,可以采用
Drop Outline OutLn_Name;
对于已经创建了的OutLine,存放在OUTLN用户的OL$HINTS表下面
对于有些语句,你可以使用update outln.ol$hin ...
[Q]怎么样创建使用虚拟索引
[A]可以使用nosegment选项,如
create index virtual_index_name on table_name(col_name) nosegment;
如果在哪个session需要测试虚拟索引,可以利用隐含参数来处理
alter session set "_use_nosegment_indexes" = true;
就可以利用explain plan for select ……来看虚拟索引的效果
利用@$ORACLE_HOME/rdbms/admin/utlxpls查看执行计划
...
[Q]怎么避免使用特定索引
[A]在很多时候,Oracle会错误的使用索引而导致效率的明显下降,我们可以使用一点点技巧而避免使用不该使用的索引,如:
表test,有字段a,b,c,d,在a,b,c上建立联合索引inx_a(a,b,c),在b上单独建立了一个索引Inx_b(b)。
在正常情况下,where a=? and b=? and c=?会用到索引inx_a,
where b=?会用到索引inx_b
但是,where a=? and b=? and c=? group by b会用到哪个索引呢?在分析数据不正确(很长时间没有分析)或根本没有分析数据的情况下,oracl ...
[Q]如何使用Hint提示
[A] 在select/delete/update后写/*+ hint */
如 select /*+ index(TABLE_NAME INDEX_NAME) */ col1...
注意/*和+之间不能有空格
如用hint指定使用某个索引
select /*+ index(cbotab) */ col1 from cbotab;
select /*+ index(cbotab cbotab1) */ col1 from cbotab;
select /*+ index(a cbotab1) */ col1 f ...
[Q]怎么样分析表或索引
[A]命令行方式可以采用analyze命令
如Analyze table tablename compute statistics;
Analyze index indexname estimate statistics;
ANALYZE TABLE tablename COMPUTE STATISTICS
FOR TABLE
FOR ALL COLUMNS
FOR ALL INDEXES
FOR ALL INDEXED COLUMNS;
等等。
如果想分析整个用户或数据库,还可以采用 ...
[Q]如果跟踪自己的会话或者是别人的会话
[A]跟踪自己的会话很简单
Alter session set sql_trace true|false
Or
Exec dbms_session.set_sql_trace(TRUE);
如果跟踪别人的会话,需要调用一个包
exec dbms_system.set_sql_trace_in_session(sid,serial#,true|false)
跟踪的信息在user_dump_dest 目录下可以找到或通过如下脚本获得文件名称(适用于Win环境,如果是unix需要做一定修改)
SELECT p1.value| ...
[Q]执行exec dbms_logmnr_d.build('Logminer.ora','file directory'),提示下标超界,怎么办
[A]完整错误信息如下,
SQL> exec dbms_logmnr_d.build('Logminer.ora','file directory')
BEGIN dbms_logmnr_d.build('Logminer.ora','file directory'); END;
*
ERROR 位于第 1 行:
ORA-06532: 下标超出限制
ORA-06512: 在"SYS.DBMS_ ...