鲁有记(三) >> 日月之航

清晨,坐上青岛到烟台的火车,一边是圆月浅挂,一边是旭日初升。曙光洒在铁路沿线的芦苇上,列车在金色的波浪上航行。


1. 圆月浸在淡紫色的西天。

免费相册



2. 东方已经蓄势待发。

免费相册



3. 越过山腰

免费相册



4. 越过树梢

免费相册



5. 旭日跟列车赛跑,对面车窗像在放慢格电影。

免费相册


6.

免费相册



7. 突然窗外涌来金色跳动的波浪。

免费相册


8. 在曙光照耀下,这波浪变幻着丰富的肤色。

免费相册



9. 十分意外地,在飞驰的列车上拍到这静止的浪花,舞动的精灵。

免费相册



10.

免费相册



11. 白色浪花

免费相册



12. 在这黄金航道上留影一个吧

免费相册



13. 田与地

免费相册



14.

免费相册



15.

免费相册



16. 烟台火车站,那个波浪顶很有意思,我想了一下用什么形容它呢?棺材盖。。。

免费相册



17. 从北马路车站坐车去蓬莱。一路都是宽阔畅快的高速公路,路边是苹果果园,难怪人家说山东的交通道路是非常漂亮的了。

免费相册



18. 到蓬莱码头已经是中午,没想到前几天由于天气缘故,开去长岛的船已经停航几天,今天早上已经开了一趟,下午还会不会有船还不知道呢。我们只好坐在码头等。看看这广告,是不是很诱惑呢,如果放在广州的话。。。

免费相册



19. 从1点等到2点,再到3点,4点,整个下午就在码头度过了。

免费相册



20.

免费相册



21. 终于有船来了,而且是大大的船,可能由于风大的原因,今天只有上下两趟大船出航。

免费相册



22. 上船的时候,已经日薄西岸。

免费相册


23. 上船后,海上生红月。

免费相册

Posted in 牛在旅途 | 1 Comment

鲁有记(一) >> 青岛 之一

没去山东之前,以为那里会有很多山东大汉,会吃到很多大葱,会大碗大碗喝酒,会。。。。事实再一次证明我觉得我以为的都不会发生。

第一站,青岛。

一下飞机就赶上全国降温,阴阴冷冷,寒风嗖嗖地刮着。那个机场叫流亭机场,我是有阴谋di,幸好不是反过来读。

第二天起床,阳光明媚,出去散步。


1.

免费相册



2. 吃一碗羊杂汤,暖洋洋,变成灰太郎,去看大教堂。

免费相册



3. 小孩子们在玩空竹。


免费相册


4。

免费相册



5。黄岛路的市场


免费相册



6。

免费相册



7。怎么形容这里的蔬果呢,就一个字——大!

免费相册



8。这是什么豆?

免费相册



9。风一吹,帐篷像降落伞一样飞起来。

免费相册



10。海滨城市,当然有很多海鲜卖。

免费相册



11。各式凉拌,相当诱人啊~~

免费相册


12。 这个是沙虫吗?怎么样子那么邪有暗香盈袖恶的,像。。。。

免费相册


13。前面那锅就是羊杂汤.

免费相册


14。

免费相册



15。蚕蛹

免费相册


16。见到这么多瓶瓶罐罐,我以为是卖酒店的用品,原来是酒店的用品。

免费相册



17。


免费相册


18。房介店旁画房子

免费相册


19。遇到在青岛的第一只肥猫了。

免费相册



20。观象山上,蜂箱的对弈。

免费相册



21。青岛已经被许多高楼大厦掩盖,旧貌只能在画笔的回忆中寻觅。

免费相册


22。 又一只胖胖。

免费相册


23。 没见过这么老友的一对猫猫,一边走一边咬耳朵说悄悄话。

免费相册


24。童话大教堂,一只猫猫走cat walk,  Cooool ~~

免费相册



25。靓猫三剑客

免费相册


26。这里弯多路窄,有些车还开得挺快,一只小猫过马路时被车扎死了,身体还抽搐到半空,惨不忍睹,我把它的尸体拾起,放在路边的树下草地,愿它与秋叶同往。

免费相册



27。

免费相册


28。

免费相册


29。会飞的叶子


免费相册


30。小猫

免费相册


31。 红叶

免费相册



32。黑猫警长和跟班的。

免费相册



33。法莫道不消魂国梧桐的学府路

免费相册

Posted in 牛在旅途 | Leave a comment

牛一牛一很快乐!

今天,以亲手做生日蛋糕,来庆祝我并不伟大但颇具历史意义的一天。

1. 大家猜猜这个将会是什么?

免费相册



2.  后来来了很多大小mm一起做蛋糕,围观者众,而且其他人也做得非常漂亮,令我们倍感压力啊!对于第一次做蛋糕的我们来说,选做这个造型是比较有挑战性的了。


免费相册



3.  经过一个多小时的摸爬滚打,东拼西凑,整容补妆,以及老师的悉心栽培,历史上首个属于我们亲手制作的Badcow生日蛋糕终于诞生了!独一无二的特征是:大细眼,大细耳,还有大细角。。。。(温馨提示:这个是牛,我怕有人以为是猪或者其他友邻动物)


免费相册



4.  这是你们能见到它可爱造型的最后一刻,请注意它眼角还奔腾着激动的泪水,哗啦啦哗啦啦的!


免费相册


真开心啊,但愿年年有柑日,岁岁有柑蕉,感谢每位发来祝福的朋友,I love U !

Posted in 未分类 | Leave a comment

Oracle -- 用EXPLAIN PLAN 分析SQL语句


From:http://blog.csdn.net/kj021320/archive/2006/08/19/1096021.aspx


如何生成explain plan?


  解答:运行utlxplan.sql. 建立plan 表


  针对特定SQL语句,使用 explain plan set statement_id = 'tst1' into plan_table


  运行utlxplp.sql 或 utlxpls.sql察看explain plan



EXPLAIN PLAN 是一个很好的分析SQL语句的工具,它甚至可以在不执行SQL的情况下分析语句. 通过分析,我们就可以知道ORACLE是怎么样连接表,使用什么方式扫描表(索引扫描或全表扫描)以及使用到的索引名称.


你需要按照从里到外,从上到下的次序解读分析的结果. EXPLAIN PLAN分析的结果是用缩进的格式排列的, 最内部的操作将被最先解读, 如果两个操作处于同一层中,带有最小操作号的将被首先执行.


NESTED LOOP是少数不按照上述规则处理的操作, 正确的执行路径是检查对NESTED LOOP提供数据的操作,其中操作号最小的将被最先处理.



译者按:


通过实践, 感到还是用SQLPLUS中的SET TRACE 功能比较方便.


举例:



SQL> list


1 SELECT *


2 FROM dept, emp


3* WHERE emp.deptno = dept.deptno


SQL> set autotrace traceonly /*traceonly 可以不显示执行结果*/


SQL> /


14 rows selected.


Execution Plan


----------------------------------------------------------


0 SELECT STATEMENT Optimizer=CHOOSE


1 0 NESTED LOOPS


2 1 TABLE ACCESS (FULL) OF 'EMP'


3 1 TABLE ACCESS (BY INDEX ROWID) OF 'DEPT'


4 3 INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)



Statistics


----------------------------------------------------------


0 recursive calls


2 db block gets


30 consistent gets


0 physical reads


0 redo size


2598 bytes sent via SQL*Net to client


503 bytes received via SQL*Net from client


2 SQL*Net roundtrips to/from client


0 sorts (memory)


0 sorts (disk)


14 rows processed



通过以上分析,可以得出实际的执行步骤是:


1. TABLE ACCESS (FULL) OF 'EMP'


2. INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)


3. TABLE ACCESS (BY INDEX ROWID) OF 'DEPT'


4. NESTED LOOPS (JOINING 1 AND 3)


注: 目前许多第三方的工具如TOAD和ORACLE本身提供的工具如OMS的SQL Analyze都提供了极其方便的EXPLAIN PLAN工具.也许喜欢图形化界面的朋友们可以选用它们.
----------------------------------------------------------------------------

对于sql执行的小量高低.我们可以通过执行计划的信息基本上可以进行分析查看该SQL语句执行的时间.连接顺序及浪费的数据库资源等信息,从而判断该SQL语句执行的效率如何,下面就简单的介绍一下执行计划的使用

2.        Explain使用
Oracle RDBMS执行每一条SQL语句,都必须经过Oracle优化器的评估。所 以,了解优化器是如何选择(搜索)路径以及索引是如何被使用的,对优化SQL语句有很大的帮助。Explain可以用来迅速方便地查出对于给定SQL语句中的查询数据是如何得到的即搜索路径(我们通常称为Access Path)。从而使我们选择最优的查询方式达到最大的优化效果。

2.1.        安装
要使用执行计划首先需要执行相应的脚本。
使用Explain工具需要创建Explain_plan表,这必须先进入相关应用表、视图和索引的所有者的帐户内。Oracle的介质中包含有执行此项工作的SQL源程序,例如:
ORA_RDBMS: XPLAINPL.SQL (VMS)
$ORACLE_HOME/rdbms/admin/utlxplan.sql (UNIX)
该脚本后会生成一个表这个程序会创建一个名为plan_table的表,表结构如下:
我们简单的介绍一下主要的字段含义:
字段名        字段类型        含义
STATEMENT_ID        VARCHAR2(30)        explain PLAN 语句中所指定的最优STATEMENT_ID 参数值, 如果在EXPLAN PLAN语句中没有使用SET STATEMENT_ID,那么此值会被设为NULL。  
REMARKS        VARCHAR2(80)        与被解释规划的各步骤相关联的注释最长可达80 字节
OPERATION        VARCHAR2(30)        各步骤所执行内部操作的名称在某条语句所产生的第一行中该列的可能取值如下DELETE STATEMENT INSERT STATEMENT SELECT STATEMENT UPDATE STATEMENT
OPTIONS        VARCHAR2(30)        对OPERATION 列中所描述操作的变种
OBJECT_NODE        VARCHAR2(12 8)         用于访问对象的数据库链接database link 的名称对于使用并行执行的本地查询该列能够描述操作中输出的次序
OBJECT_OWNER        VARCHAR2(30)        对于包含有表或索引的架构schema 给出其所有者的名称
OBJECT_NAME        VARCHAR2(30)        表或索引的名称
OBJECT_INSTANCE        INTEGER        根据对象出现在原始original 语句中的次序所给出的相应次序编号就原始的语句文本而论其处理顺序为自左至右自外向内景象扩张view
OBJECT_TYPE        VARCHAR2(30)        用于提供对象描述性信息的修饰符例如索引的NON-UNIQUE
OPTIMIZER        VARCHAR2(255)        当前优化程序的模式
ID        INTEGER        分配给执行规划各步骤的编号
PARENT_ID        INTEGER        对ID 步骤的输出进行操作的下一个执行步骤的ID
POSITION        INTEGER        对于具有相同PARENT_ID 的步骤其相应的处理次序
COST        INTEGER        根据优化程序的基于开销的方法所估计出的操作开销值对于使用基于规则方法的语句该列为空该列值没有特定的测量单位它只是一个用于比较执行规划开销大小的权重值
CARDINALITY        INTEGER        根据基于开销的方法对操作所访问行数的估计值
BYTES        INTEGER        根据基于开销的方法对操作所访问字节的估计


2.2.        使用
2.2.1.        常规使用
常规使用语法:
explain PLAN [ SET STATEMENT_ID [=] < string literal > ]
[ INTO < table_name > ]
FOR < sql_statement >
其中:
STATEMENT_ID是一个唯一的字符串,把当前执行计划与存储在同一PLAN表中的其它执行计划区别开来。
TABLE_NAME是plan表名,它结构如前所示,你可以任意设定这个名称。
SQL_STATEMENT是真正的SQL语句。
如:
SQL> explain plan set statement_id='test1' for 
  2     SELECT a.soctermbegin,
  3            a.soctermend,
  4            a.dealserialno,
  5            a.levydataid,
  6            a.dealtotal,
  7            e.categoryitemcode,
  8            row_number() over(PARTITION BY a.levydataid ORDER BY 1) AS theRow
  9       FROM tb_soc_packdealdata   a,
10            tb_Lvy_TaxDataBillMap c,
11            Tb_lvy_BillData       d,
12            tb_soc_levydetaildata e
13      WHERE a.levydataid = c.datafrompointer(+)
14        AND c.billdataid = d.billdataid(+)
15        AND a.levydataid = e.levydataid
16        AND a.packdealstatuscode = '10'
17        AND (a.datastatus <> '9' OR a.datastatus is NULL)
18        AND (d.billstatus IS NULL OR
19            (d.billstatus <> '2' AND d.billstatus <> '8'))
20        AND a.Insurcode = '6010952'
21  ;
Explained
执行下面语句就可以查看该语句执行的执行计划:
SQL> SELECT A.OPERATION,OPTIONS,OBJECT_NAME,OBJECT_TYPE,ID,PARENT_ID
  2  FROM PLAN_TABLE  a
  3  WHERE STATEMENT_ID='test1'
  4  ORDER BY Id;
OPERATION        OPTIONS        OBJECT_NAME                    OBJECT_TYPEID  PARENT_ID
---------------- --------------------------------------------- ------------- ----------
SELECT STATEMENT                                                           0
WINDOW           SORT                                                      1          0
FILTER                                                                     2          1
NESTED LOOPS     OUTER                                                     3          2
NESTED LOOPS     OUTER                                                     4          3
NESTED LOOPS                                                               5          4
TABLE ACCESS     FULL           TB_SOC_PACKDEALDATA                        6          5
TABLE ACCESS     BY INDEX ROWID TB_SOC_LEVYDETAILDATA                      7          5
INDEX            RANGE SCAN     IND_DATAID_LEVSOC              NON-UNIQUE  8          7
TABLE ACCESS     BY INDEX ROWID TB_LVY_TAXDATABILLMAP                      9          4
INDEX            RANGE SCAN     TBLVYTAXDATABIL_DATAFROMPOINTE NON-UNIQUE 10          9
TABLE ACCESS     BY INDEX ROWID TB_LVY_BILLDATA                           11          3
INDEX            UNIQUE SCAN    TBLVYBILLDATA_BILLDATAID       UNIQUE  
2.2.2.        自动显示使用
在SQLPLUS中自动跟踪显示执行计划及相关信息
SQL>set timing on  --显示执行时间
SQL>set autorace on �C显示执行计划
SQL>set autorace on �C显示执行计划
SQL>set autotrace traceonly �C只显示执行计划即不显示查询出来的数据
设置完毕后执行SQL语句就会显示执行计划信息及相应的统计信息(需要设置显示该选项)
SQL> select nvl(sum(t.taxdue), 0)
  2             from tb_lvy_sbzs100 t, tb_lvy_declaredoc a, tb_lvy_declaredoc b
  3            where a.dossiercode = 'SB02041108'
  4              and a.pages = 123
  5              and a.remarkid = b.remarkid
  6              AND A.REMARKID IS NOT NULL
  7              and b.declaredocid = t.declaredocid;
NVL(SUM(T.TAXDUE),0)
--------------------
                   0
已用时间:  00: 00: 04.07
Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT Optimizer=CHOOSE (Cost=6 Card=1 Bytes=110)
   1    0   SORT (AGGREGATE)
   2    1     NESTED LOOPS (Cost=6 Card=1 Bytes=110)
   3    2       MERGE JOIN (CARTESIAN) (Cost=4 Card=1 Bytes=74)
   4    3         TABLE ACCESS (FULL) OF 'TB_LVY_SBZS100' (Cost=2 Card =1 Bytes=31)
   5    3         BUFFER (SORT) (Cost=2 Card=1 Bytes=43)
   6    5           TABLE ACCESS (FULL) OF 'TB_LVY_DECLAREDOC' (Cost=2 Card=1 Bytes=43)
   7    2       TABLE ACCESS (BY INDEX ROWID) OF 'TB_LVY_DECLAREDOC' (Cost=2 Card=1 Bytes=36)
   8    7         INDEX (UNIQUE SCAN) OF 'TBLVYDECLAREDOC_DECLAREDOCID' (UNIQUE)
Statistics
----------------------------------------------------------
          0  recursive calls --循环递归次数
          0  db block gets―请求的数据块在buffer能满足的个数
       6675  consistent gets --逻辑IO用于读表并计算行数, 数据请求总数在回滚段Buffer中
         45  physical reads �C从磁盘读到Buffer Cache数据块数量
          0  redo size �C产生的redo日志大小
        217  bytes sent via SQL*Net to client
        276  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
          1  rows processed
SQL>
如果6675  consistent gets --逻辑IO用于读表并计算行数, 数据请求总数在回滚段Buffer中
45        physical reads �C从磁盘读到Buffer Cache数据块数量
的数值比较小则该语句对对数据库的性能比较高。


2.2.3.        PL/SQL和TOAD中使用
如果在PL/SQL中使用选择要查询语句显示执行计划,则只需要SQL WINDOWS 窗口里面输入要查询的SQL语句,然后选择按键F5或者在菜单TOOLS�D�D>Explain Plan 菜单按键就可以在执行计划窗口查看该语句的执行计划。
在TOAD语句中在执行当前的SQL窗口中选择下方的Explain PlanTAB页即可以查看要执行语句的执行计划信息。

2.3.        限制
虽然任何SQL语句都可以用explain解释,但对于没有查询的INSERT,UPDATE,DELETE操作来说,这个工具并没有太大的用处。没有子查询的INSERT操作不会创建执行计划,但没有WHERE子句或子查询的UPDATE和DELETE操作会创建执行计划,因为这些操作必须先找出所要的记录。
另外,如果你在SQL语句中使用其它类型如sequence等,explain也能揭示它的用法。
explain真正的唯一的限制是用户不能去解释其它用户的表,视图,索引或其它类型,用户必须是所有被解释事物的所有者,如果不是所有者而只有select权限,explain会返回一个错误。 

Posted in 牛棚笔记 | Leave a comment

歌词

近日不少灾难片上映,刚好之前又参加了公司的环保填词比赛,糊弄了一首,以资赠兴。

*********************************************************************************************************************
*********************************************************************************************************************
*********************************************************************************************************************




























































































原唱:陳奕迅,《富士山下》,粤语


改词:Badcow,《诺亚方舟》,粤语


攔路雨偏似雪花 飲泣的你凍嗎 這風褸我給你磨到有襟花


弹着这荒废吉他 哭泣土地痛吗 应该知道机器磨你有伤疤


連調了職也不怕 怎麼始終牽掛 苦心選中今天想車你回家


连绝了迹也不怕 只为卖出高价 天天苦费心思想毁佢全家


原諒我不再送花 傷口應要結疤 花瓣鋪滿心裡墳場才害怕


情人节不再送花 公园早已拆啦 胶樽铺满婚礼坟场才害怕


如若你非我不嫁 彼此終必火化 一生一世等一天需要代價


如若你不再惊讶 山川变晒焦瓦 今生今世不需等一个长假


 


 


誰都只得那雙手 靠擁抱亦難任你擁有 要擁有必先懂失去怎接受


谁都伸出你双手 靠补救亦难任你拥有 要拥有必先懂污染怎接受


曾沿著雪路浪遊 為何為好事淚流 誰能憑愛意要富士山私有


曾沿着铁路漫游 为何为生态泪流 谁能凭恶意要堆满她污垢


何不把悲哀感覺 假設是來自你虛構 試管裡找不到它染污眼眸


何不把山清水秀 假设是来自你本有 记忆里找不到她染污眼眸


前塵硬化像石頭 隨緣地拋下便逃走


田园硬化像石头 情愿被抛弃便逃走


我絕不罕有 往街裡繞過一周 我便化烏有


你绝不罕有 往海里躺过一周 你便化水兽


 


 


情人節不要說穿 只敢撫你髮端 這種姿態可會令你更心酸


忘掉去迁拆瓦砖 轻抚老树发端 天高海阔可会令你更依恋


留在汽車裡取暖 應該怎麼規勸 怎麼可以將手腕忍痛劃損


无奈气温会升暖 冰山发出哀怨 怎么可以将海岛忍痛划损


人活到幾歲算短 失戀只有更短 歸家需要幾里路誰能預算


狼活到几岁算短 青草只会更短 搬家需要几里路谁能预算


忘掉我跟你恩怨 櫻花開了幾轉 東京之旅一早比一世遙遠


如若你不理规劝 天灾开始不断 火星家眷哭声比天际遥远


 


 


誰都只得那雙手 靠擁抱亦難任你擁有 要擁有必先懂失去怎接受


谁都伸出你双手 靠补救亦难任你拥有 要拥有必先懂污染怎接受


曾沿著雪路浪遊 為何為好事淚流 誰能憑愛意要富士山私有


曾沿着铁路漫游 为何为生态泪流 谁能凭恶意要堆满她污垢


何不把悲哀感覺 假設是來自你虛構 試管裡找不到它染污眼眸


何不把山清水秀 假设是来自你本有 记忆里找不到她染污眼眸


前塵硬化像石頭 隨緣地拋下便逃走


田园硬化像石头 情愿被抛弃便逃走


我絕不罕有 往街裡繞過一周 我便化烏有


你绝不罕有 过一周 你便化灰垢


 


 


誰都只得那雙手 靠擁抱亦難任你擁有 要擁有必先懂失去怎接受


谁都伸出你双手 靠补救亦难任你拥有 要拥有必先懂污染怎接受


曾沿著雪路浪遊 為何為好事淚流 誰能憑愛意要富士山私有


曾沿着铁路漫游 为何为生态泪流 谁能凭恶意要堆满她污垢


何不把悲哀感覺 假設是來自你虛構 試管裡找不到它染污眼眸


何不把山清水秀 假设是来自你本有 记忆里找不到她染污眼眸


前塵硬化像石頭 隨緣地拋下便逃走


田园硬化像石头 情愿被抛弃便逃走


我絕不罕有 往街裡繞過一周 我便化烏有


你绝不罕有 里躺过一周 你便化枝柳


你還嫌不夠 我把這陳年風褸 送贈你解咒


你还嫌不够 我把这逃离方舟 送赠你解救

Posted in 未分类 | 4 Comments

Oracle - TEMPORARY Tablespaces and TEMPFILES

From: http://www.orafaq.com/node/2

What are Temporary Tablespaces:


Temporary tablespaces are used to manage space for database sort operations and for storing global temporary tables. For example, if you join two large tables, and Oracle cannot do the sort in memory (see SORT_AREA_SIZE initialisation parameter), space will be allocated in a temporary tablespace for doing the sort operation. Other SQL operations that might require disk sorting are: CREATE INDEX, ANALYZE, Select DISTINCT, ORDER BY, GROUP BY, UNION, INTERSECT, MINUS, Sort-Merge joins, etc.


The DBA should assign a temporary tablespace to each user in the database to prevent them from allocating sort space in the SYSTEM tablespace. This can be done with one of the following commands:


SQL> CREATE USER scott DEFAULT TABLESPACE data TEMPORARY TABLESPACE temp;
SQL> ALTER USER scott TEMPORARY TABLESPACE temp;


Note that a temporary tablespace cannot contain permanent objects and therefore doesn't need to be backed up.


What are TEMPFILES?


Unlike normal data files, TEMPFILEs are not fully initialised (sparse). When you create a TEMPFILE, Oracle only writes to the header and last block of the file. This is why it is much quicker to create a TEMPFILE than to create a normal database file.


TEMPFILEs are not recorded in the database's control file. This implies that one can just recreate them whenever you restore the database, or after deleting them by accident. This opens interesting possibilities like having different TEMPFILE configurations between permanent and standby databases, or configure TEMPFILEs to be local instead of shared in a RAC environment.


One cannot remove datafiles from a tablespace until you drop the entire tablespace. However, one can remove a TEMPFILE from a database. Look at his example:


SQL> ALTER DATABASE TEMPFILE '/oradata/temp02.dbf' DROP INCLUDING DATAFILES;


If you remove all tempfiles from a temporary tablespace, you may encounter error: ORA-25153: Temporary Tablespace is Empty. Use the following statement to add a TEMPFILE to a temporary tablespace:


SQL> ALTER TABLESPACE temp ADD TEMPFILE '/oradata/temp03.dbf' SIZE 100M;


Except for adding a tempfile, as illustrated in the above example, you cannot use the ALTER TABLESPACE statement for a locally managed temporary tablespace (operations like rename, set to read only, recover, etc. will fail).


How does one create Temporary Tablespaces?


Oracle provides various ways of creating TEMPORARY tablespaces (mainly to provide backward compatibility). One should use the most recent method available:


- Prior to Oracle 7.3 - CREATE TABLESPACE temp DATAFILE ...;
- Oracle 7.3 & 8.0 - CREATE TABLESPACE temp DATAFILE ... TEMPORARY;
- Oracle 8i and above - CREATE TEMPORARY TABLESPACE temp TEMPFILE ...;


Oracle 8i and 9i example:


SQL> CREATE TEMPORARY TABLESPACE temp
TEMPFILE '/oradata/mytemp_01.tmp' SIZE 20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;


For best performance, the UNIFORM SIZE must be a multiple of the SORT_AREA_SIZE parameter.


Oracle 9i example using OMF (Oracle Managed Files):


SQL> CREATE TEMPORARY TABLESPACE temp;


Default Temporary Tablespaces:


In Oracle 9i and above, one can define a Default Temporary Tablespace at database creation time, or by issuing an "ALTER DATABASE" statement:


ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;


The default Default Temporary Tablespace is SYSTEM. Each database can be assigned one and only one Default Temporary Tablespace. Using this feature, a Temporary Tablespace is automatically assigned to users. The following restrictions apply to default temporary tablespaces:


- The Default Temporary Tablespace must be of type TEMPORARY
- The DEFAULT TEMPORARY TABLESPACE cannot be taken off-line
- The DEFAULT TEMPORARY TABLESPACE cannot be dropped until you create another one.


To see the default temporary tablespace for a database, execute the following query:


SQL> SELECT * FROM DATABASE_PROPERTIES where PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';


All new users that are not explicitly assigned a TEMPORARY TABLESPACE, will get the Default Temporary Tablespace as its TEMPORARY TABLESPACE. Also, when you assign a TEMPORARY tablespace to a user, Oracle will not change this value next time you change the Default Temporary Tablespace for the database.


Other Considerations:


Some performance considerations for temporary tablespaces:


- Always use temporary tablespaces instead of permanent content tablespaces for sorting (no logging and uses one large sort segment to reduce recursive SQL and ST space management enqueue contention).
- Ensure that you create your temporary tablespaces as locally managed instead of dictionary managed (Use sort space bitmap instead of sys.fet$ and sys.uet$ for allocating space).
- Always use TEMPFILEs instead of DATAFILEs (reduce backup and recovery time + other advantages as described above)
- Stripe your temporary tablespaces over multiple disks to alleviate possible disk contention and to speed-up sorting operations (user processes can read/write to it directly).


Monitoring Temporary Tablespaces and Sorting:


Unlike datafiles, tempfiles are not listed in V$DATAFILE and DBA_DATA_FILES. Use V$TEMPFILE and DBA_TEMP_FILES instead.


One can monitor temporary segments from V$SORT_SEGMENT and V$SORT_USAGE


DBA_FREE_SPACE does not record free space for temporary tablespaces. Use V$TEMP_SPACE_HEADER instead:


SQL> select TABLESPACE_NAME, BYTES_USED, BYTES_FREE from V$TEMP_SPACE_HEADER;
TABLESPACE_NAME BYTES_USED BYTES_FREE
------------------------------ ---------- ----------
TEMP 52428800 52428800
Posted in 牛棚笔记 | Leave a comment

1. 夕阳红旗

免费相册


2. 夕 扬

免费相册


3.

免费相册


4.

免费相册


5. 玉兰大剧院

免费相册


6. 这个地方看落日最美,不过今天迟了点。

免费相册

Posted in 未分类 | Leave a comment

家 中 秋

1. 中秋的傍晚,莞城的日落总是那么美。

免费相册



2. 体育馆

image



3. 嘉顿的蛋糕你就吃过,嘉顿的厂你有无看过闻过?

免费相册



4. 运河边

免费相册



5. 街心公园 (文化广场)

免费相册


6. 西城楼

免费相册


7. 昨日黄昏

免费相册


8. 运河两岸

免费相册



9. 运河商场,千疮百孔。

免费相册


10. 华侨大酒店,脸很脏,没人理。

免费相册



11. 一对难兄难弟,你映着我,我照着你。

免费相册



12. 大桥,新旧时代的时光隧道。

免费相册



13. 振华路,屠夫没有急着动手,想让她继续痛苦,慢慢折磨。

免费相册



14. 跟着28寸大坦克招摇过市。

免费相册


15. 旧百货大楼和科技书店

免费相册



16. 东方红,太阳升,这里出了个照相馆。

免费相册



17. 一个至少有二十多年的烧鹅档,窗前有时要排队。

免费相册



18. 旨亭街,拆的分割线。

免费相册



19. 运河小学后门,消失的第二市场。

免费相册



20. 旨亭街17巷,那盏唯一而永恒的灯,还有我的老家。

免费相册



21. 圆月,灯火,回家吃饭咯!

免费相册

Posted in 未分类 | 1 Comment

生于1959

广图这辆老红旗,是1959年一汽公司为新中国成立10周年大庆而特别赶制的高级轿车之一,是我国第一辆红旗高级轿车,是专门为新中国成立10周年阅兵定造的。

当年第一汽车制造厂为向新中国成立10周年献礼,自行研制开发了第一代红旗牌高级轿车CA72型,当年制造了10辆,几乎全是手工制造,被称为是“一台台‘硬砸’出来的”。到1963年该车停产,总共也不过生产了202辆。

该车当时原本是先进入一汽博物馆中,后于上世纪90年代初期被广州某位富豪用“天价”将它买走,且该富豪在广州图书馆内租了一层办公楼用来做文化公司,主要经营书画收藏,后来公司破产他就举债潜逃,于是这辆极具价值的“老红旗”就被用来抵债了,一直停放在此没有人护理。

车上的重要零件已经被偷光,现在成了图书馆自由猫灰灰的私家窝。face


image

Posted in 未分类 | 1 Comment

别靠

今天是个不太愉快的一天,照片被叉烧了,所以大家看不到。还出现一个意外,在想解决办法。

偶然想到badcow这个id,中文读音是“别靠”,可作如下解释:

1。别靠近,可以贴在车后面提醒人家别开得太近了,哈哈哈~~~

2。别喊“靠”,莫生气,做文明地球村民。

Posted in 未分类 | 7 Comments