跳至主要内容

Oracle学习笔记20071225

建立临时表从公共表中建立临时表
SQL>CREATE GLOBAL TEMPORARY TABLE hr.employees_temp AS SELECT * FROM hr.employees;


修改表的存贮参数
SQL>ALTER TABLE hr.employees PCTFREE 30 PCTUSED 50 STORAGE(NEXT
500K MINEXTENTS 2 MAXEXTENTS 100);

手动分配允许的extent
SQL>ALTER TABLE hr.employees ALLOCATE EXTENT(SIZE 500K DATAFILE '/DISK3/DATA01.DBF';

不分割表进行重组(Nonpartitioned Table Reorganization)
SQL>ALTER TABLE hr.employees MOVE TABLESPACE data1;

(上个礼拜五做这个重新分割移动表的时候,出现了错误,由于先前的错误导致了半灾难性的后果,所以对于目前来说整体的复习也是比较重要的。
例如这个语句,上次就可以写成SQL>ALTER TABLE A MOVE TABLESPACE atu;)
删除表(Truncating a Table)
SQL>TRUNCATE TABLE hr.employees;

这个删除表的意思是删除表的所有行并不是所有表,包括所有索引,具体的语句可以在sql三合一中找到
删除表(Dropping a Table)
SQL>DROP TABLE hr.department CASCADE CONSTRAINTS;

这个语句才是删除表,包括所有定义的语句。
删除列(Dropping a Column)
SQL>ALTER TABLE hr.employees DROP COLUMN comments CASCADE CONSTRAINTS CHECKPOINT 1000;


使用UNUSED选项将comments设为unused,因为comments有constraints
SQL>ALTER TABLE hr.employees SET UNUSED COLUMN comments CASCADE CONSTRAINTS;

删除unused列
SQL>ALTER TABLE hr.employees DROP UNUSED COLUMNS CHECKPOINT 1000;

继续删除unused列
SQL>ALTER TABLE hr.employees DROP COLUMNS CONTINUE CHECKPOINT 1000;

具体的信息查找可以在dba_tablesdba_objects中找到。
管理索引(index)索引分类逻辑(单个列或者连锁列,唯一或非唯一,基于函数,基于域)物理(分割或未分割,B数列,位图)
建立B树形的INDEX
SQL>CREATE INDEX hr.employees_last_name_idx ON hr.employees(last_name)PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50)TABLESPACE indx;

建立bitmap型index
SQL>CREATE BITMAP INDEX orders_region_id_idx ON orders(region_id)PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50)TABLESPACE indx;


改变index的存贮函数
SQL>ALTER INDEX employees_last_name_idx STORAGE(NEXT 400K MAXEXTENTS 100);

允许使用index space
SQL>ALTER INDEX orders_region_id_idx ALLOCATE EXTENT (SIZE 200KDATAFILE '/DISK6/indx01.dbf');


不允许使用index space
SQL>ALTER INDEX orders_id_idx DEALLOCATE UNUSED;


重建索引(rebuilding index)使用alter index,将一个index引到另外个不同的表空间,提高空间利用,改变在B树形INDEX的坏的index.使用下列语句:
SQL>ALTER INDEX orders_region_id_idx REBUILD TABLESPACE indx02;


在线rebuilding index
SQL>ATLER INDEX orders_region_id_idx REBUILD ONLINE;

联合index(coalsecing index)

SQL>ALTER INDEX orders_region_id_idx COALESCE;


检查index的有效性(check index validity)

SQL>ANALYZE INDEX orders_region_id_idx VALIDATE STRUCTURE;


删除index

SQL>DROP INDEX hr.deptartments_name_idx;


检验unused索引(identifying Unused Indexes)开始监视usage of an index

SQL>ALTER INDEX summit.orders_id_idx MONITORING USAGE

停止监视

SQL>ALTER INDEX summit.orders_id_idx NOMONITORING USAGE


关于INDEX的几个表DBA_INDEXES,DBA_IND_COLUMNS,DBA_IND_EXPRESSIONS,V$OBJECT_USAGE


作为一个DBA,需要保证数据的正确性(Maintaining Data Integrity),所以来学习下面的课:
首先是数据完整约束(constraint):包括有not null,unique,primary key,foreign key,check立刻或者延期定义约束:使用set constraints命令进行deferred或者immediate,其他的话用ALTER SESSION命令来set constraints
建表时可以直接定义约束:

SQL>CREATE TABLE hr.employee( id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX STORAGE(INITIAL 100K NEXT 100K)TABLESPACE indx, last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL, dept_id
NUMBER(7))TABLESPACE users;


开启约束Enable Novalidate:No locks on table,Primary and unique keys must use nonunique indexes

SQL>ALTER TABLE hr.departments ENABLE NOVALIDATE CONSTRAINT dept_pk;


Enable Validate:Locks table,Can use unique or nonunique indexes,Needs valid table data

SQL>ALTER TABLE hr.employees ENABLE VALIDATE CONSTRAINT emp_dept_fk;


使用特别的exceptions TABLE 貌似没啥用。
涉及到约束的两张表DBA_CONSTRAINTS DBA_CONS_CONLUMNS
管理密码安全和资源
ProfilesProfile是密码和资源限制,Profile用create user或者alter user,可以被开启和关闭,可以和默认相关联
开启Password管理锁定PASSWORD帐户参数:

Failed_login_attempts 登录失败次数

Password_lock_time:登录失败后锁定的天数

password_life_time:密码的有效天数

password_grace_time:从第一登录到修改密码的时间

password_reuse_time:密码能被重新使用的天使

password_reuse_max:Maximum number of times a password can be

reusedPASSWORD_VERIFY_FUNCTION:需要用到VERIFY_FUNCTION


建立一个PROFILE

SQL>CREATE PROFILE grace_5 LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME UNLIMITED PASSWORD_LIFE_TIME 30 PASSWORD_REUSE_TIME 30 PASSWORD_VERIFY_FUNCTION
verify_function PASSWORD_GRACE_TIME 5;

修改PROFILE

SQL>ALTER PROFILE default FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LIFE_TIME 60 PASSWORD_GRACE_TIME 10;


删除PROFILEDROP PROFILE developer_prof CASCADE;
资源管理:可以控制等级,限制可在create profile的时候定义,开启定义用resource_limit,使用alter system命令开启资源管理

SQL>ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;


所拥有的RESOURCECPU_PER_SESSION,SESSIONS_PER_USER,CONNECT_TIME,IDLE_TIME,

LOGICAL_READS_PER_SESSION,PRIVATE_SGA,CPU_PER_CALL,LOGICAL_READS_PER_CALL


LIMIT的例子

SQL>CREATE PROFILE developer_prof LIMIT SESSIONS_PER_USER 2CPU_PER_SESSION 10000 IDLE_TIME 60 CONNECT_TIME 480;


所对应的表DBA_USERS DBA_PROFILES

评论

此博客中的热门博文

Python学习笔记20100117

映射list   Dictionary 是用{}. list 是一那个[]. turple是用() 当你定义过dictionary后,你可以使用d.keys(), d.values(),d.items()将定义后的时候分别显示出来 当然可以将list里的值加减乘除,也可以如一般的定义直接重新复制这个list. 链接与分割字符串的 li=";", join(li) 则显示的就是 分隔符为;的数 如果使用li=li.split(";")则将刚刚;的分隔符删除,而split里也可定义域,如li.split(";",1)   自省 <---这是啥 之前在使用的时候发觉有些书本上的模块不能调用,很多是py脚本定义过的函数。 下载该脚本s,然后上传至指定位置。 >>>import sys >>>sys.path >>>sys.path.append("绝对位置")然后就能调用这些脚本和参数了。 删除 >>>sys.path.pop() 定义一个参数是 def info(test, test1=10.test2=12): info是函数名,test是必备参数,因为没有定义值,test1和test2是可选参数,定义了初始值   以上是外部函数的调用,下面转到内部函数 内部函数有type,str,dir及其他   ---type 返回任意字符的类型,模块也可以。types模块 >>> type(1) <type 'int'> >>> li=[] >>> type(li) <type 'list'> >>> import odbchelper >>> type(odbchelper) <type 'module'> >>> type(sys) <type 'module'> >>> import types ...

投名状

昨天晚上实在无聊,就屁颠屁颠的去看了《投名状》,本来去奥斯卡的,发觉已经只有9点以后的场次,还特别的翘,我说那九点看了直接去看《集结号》首映算了,别人不愿意,那行,然后出来瞎晃悠,还好几个周围的电影院还近,去了胜利,人那还没上片,看来没希望,突然想去唱歌,行,反正金歌也进,就那么走过去吧,突然眼前豁然开朗,这不是西湖电影院么,一阵小跑,发觉上片,最近的场次还只有头牌了,虽然头牌脖子有点罩不住,但是至少看看片子还可以的。 网上大概了解了下《投名状》,陈可辛翻拍的《刺马》,加上了几个现代的演员。故事的大概是:姜午阳、赵二虎本为草莽,在一次争斗中与庞青云结识。三人惺惺相惜,结为异姓兄弟。不料日就生变,赵二虎的妻子莲生爱上了大哥庞青云,庞青云也对莲生心生爱慕。不久后,庞青云升为两江总督,欲望逐渐膨胀,变得心狠手辣。他的道德防线也逐渐崩溃,霸占莲生,还要对兄弟下手…… 剧情也就那么个回事情,其实故事梗概不然,一个从死人堆里爬出来的人,什么都失去过了 。已经改变了他的原有个性,他已经从开始就知道什么是他要的,而唯一觉得真是的就是老徐那一次,其实古时候也挺简单的,说得好就上了。只是一种人性做本质的释放。受苦挨饿无非就是为了有着一日飞黄腾达,为了生活隐姓埋名,别人都在抢军粮的时候什么都不做,唯一的只是在金城武快要被杀掉的时候救助,然后直接取了押送大将的首级。擒贼先擒王。。。。 而刘德华的出场也特别犀利,从他的眼神看出他已经被锻炼的很老练,已经是一个大将之才,错的地方就是信错了人,在后面苏州一役的时候,从为了一个被困一年的军队,只身一人去刺城主。被困一年无论对于城内还是城外都是极大的考验,心里防线都已经到了崩溃的边缘。而城主以他的解脱来换大众的解脱,这是很等的伟大,而战争是残酷的,不能收编的俘虏虽然答应了别人,可没有粮食来养活那么多人。敌军的气节也让人唏嘘不已。 刘德华的演绎的性格有情有义,到最后死也不认为是李连杰派人杀的他。李连杰演绎的则是在战场上全军覆没后,心里从此极大改变,为了目的不择手段,从始至终就是在利用刘和金,但也为曾经的战场情了矛盾,权还是义一直是在他的心理纠结着,当苏州一役,李看到刘走出城那种又喜又悲的感情时,看出了他心理是多的纠结。金城武么,唉,演技确实很好,但是角色赋予的他是个傻蛋的角色,只为了情谊,一心想挽回情谊,而在战场上也为了情谊能甘当敢死队,同时也为了情谊...