Archive for 一月, 2009
星期五, 一月 16th, 2009
一般进行分区的表都是那些特别大的表,为什么节省空间,对这些分区表进行压缩就显得很有意义。
但不是所有的分区表都可以压缩,下面就讨论下主要的分区方式下的压缩问题。
压缩可以分为两种情况,一种是在建立分区表的时候就直接指定COMPRESS属性,另外一种是对已经存在表进行MOVE COMPRESS。
下面按照分区的类型分别讨论下:
测试用表
SQL> CREATE TABLE test
2 (id NUMBER,
3 name VARCHAR2(100),
4 grade VARCHAR2(1));
1,RANGE PARTITION
表已创建。
SQL> INSERT INTO test SELECT ROWNUM , a.object_name , DECODE(MOD(length(a.object_name),2),1,1,2)
2 FROM DBA_OBJECTS a,DBA_OBJECTS b
3 WHERE ROWNUM < 1000000;
已创建999999行。
SQL> COMMIT;
提交完成。
SQL> SELECT BYTES,BLOCKS FROM USER_SEGMENTS WHERE SEGMENT_NAME = 'TEST';
BYTES BLOCKS
---------- ----------
24117248 2944
1,RANGE PARTITION
(1)直接指定COMPRESS属性
SQL> CREATE TABLE test_r_1
2 (id NUMBER,
3 name VARCHAR2(100),
4 grade ...
Posted in oracle | No Comments »
星期三, 一月 14th, 2009
我在去年曾经写过关于火车票和股票的内容,大概如下:
----------------------------------------------------------------
车票?股票?
马上就过年了,火车票还没有着落,估计今年十有八九是回不了家了。头一次知道火车票居然是这么抢手的东西。每天晚上,各个售票点门口都会聚集大群人,他们会在门口等一个通宵,然后买第二天的票。可其中的绝大部分还是失望而归。真的有那么难么,两方面吧,一方面铁路的运力确实有缺口,春运的压力大得很,这方面大家都会理解。另一方面,就是黄牛票的问题,这个问题不知道多少年了,没有得到一点的解决,每年春运的时候黄牛都变成了主角,高高在上。我还是喜欢叫他们“票贩子”。车票紧张是事实,可真的紧张到这个程度了么?我想和铁路有相当大的关系,那些排队买票的黄牛们并不会对车票产生那么大的影响,最关键的可能就是那些和铁路有关系的黄牛吧。铁路方面的人主要是有些本事的,谁会愿意放弃这么好的一个挣快钱的机会呢。到最后可能大部分还是可以买到票的,不过却花了更多的钱,浪费了更多的精力,肥了那些铁路的人和那些黄牛么。faint!
接着说说另一个票吧,股票。前一阵子股市很红火,周围的人都买股票和基金了。在这种大环境下,我也被感染了,买了一些基金。从此,每天看看大盘也成了我的习惯。基金不象股票,不过每天看到大盘在涨,心里也是挺高兴的。最近一周,股市大跌1000多点,还好今天涨了一些。其实都以为炒股来钱容易,可是这赚钱的过程是多么的辛苦和矛盾啊,尤其对于散户来说。股票涨了一些,心想是不是涨到顶了,是不是该买了;股票跌了一些,心想是不是该止损,是不是该抄底。可以说,整个过程人都是矛盾的,在买与卖之间徘徊,这种滋味肯定是不好过的。所以,如果你没有一颗坚强的心,请不要玩股票。
----------------------------------------------------------------
去年在临放假2天我才买到火车票,回沈阳的卧铺票。今天情况也差不多,自己排队买到票的几率比买双色球中二等奖的几率高不了多少。那么还是只能打“票贩子”的电话,听天由命了。关于火车票的问题,都这么多年了,还是没有一点变好的迹象。真的有那么难么?铁路相关部门的不作为和内部员工谋私的纵容是目前火车票一票难求的根本。打击“黄牛”只是治标不治本的,问题的真正根源在于铁路内部。关于这点官老爷们不会不知道的,但是为了那花花绿绿的票子,其他的一切都不重要,有谁会在乎老百姓的感受。
今天杭州火车站一位老大爷为了买到张回家的车票,在车站通宵排队的时候被冻死了。鲜活的生命就这么没了……
想想,诺大的中国,10多亿的人口,每年都要被铁路内部那些害虫和那些吸血的“票贩子”大大地玩上一回,这一小撮人搅得这个社会鸡犬不宁。真TMD……
有的时候想想,老百姓真的很可怜。在外面奔波了一年,想要回家和家人团聚这点的愿望都变成了奢望。
说在多也只能是自己发泄发泄而已,屁用没有的。
关于我去年年初买的基金,也早就买掉了,还好买的少而且卖得也早,所以并没有多少损失。可是2008年这一年股市从6000多点,跌到了现在1800多点,多少个家庭倾家荡产。中国的股市已经变成了完全的圈钱的工具了,早已经失去股票本来的融资的功能。大小非问题不解决,股市监管的问题不解决,中国股市是没有前途。我是不会在碰股市了。我不想白领进去乞丐出来,我不想胖子进去瘦猴出来。
2008年发生太多的大事情,奥运过后的“次贷危机”搞得整个世界乱七八糟。我头一次听到了国家破产,可怜的冰岛。“次贷危机”对中国的冲击远比想象的要大,长三角和珠三角大批中小企业的倒闭就充分说明这个点。中国的GDP中进出口占了绝对的大头,在“次贷危机”和人民币升值的双重影响下,中国的出口受到了前所未有的挑战。其实最大的问题还是在我们本身,出口企业本身就存在严重的问题。中国的出口附加值极低,技术含量极低,主要都是劳动密集型的加工制造业。这些制造业在牺牲中国工人的利益下,在对环境严重的破坏下,为中国赚取了大量的外汇。仔细想一想,这场不公平的交易中,中国得到的仅仅是美圆——没有价值的纸币,而付出的是多么惨重的代价。正当拿着这些票子沾沾自喜的时候,当为巨大的贸易顺差欣喜若狂的时候,美圆贬值了。NND,手里的票子天天贬值,越来越不值钱。美国呢,只要多加几部印钞机,就可以换到实实在在的商品。光光美圆贬值就算了,那些血汗换来的外汇还购买了美国那些不知道所谓的债券……
不说了……
Posted in 我的心情 | No Comments »
星期三, 一月 14th, 2009
26,分析表
语法:
ORACLE :ANALYZE TABLE test COMPUTE STATISTICS;
GP :ANALYZE TEST;
27,表中增加字段
语法:
ORACLE :ALTER TABLE test ADD score NUMBER;
GP :ALTER TABLE test ADD score FLOAT;
28,表中删除字段
语法:
ORACLE :ALTER TABLE test DROP COLUMN score;
GP :ALTER TABLE test DROP COLUMN score;
29,集合操作
语法:
ORACLE :query1 UNION [ALL] query2 (合集)
query1 INTERSECT query2 (交集)
query1 MINUS query2 (差集)
GP :query1 UNION [ALL] query2 (合集)
query1 INTERSECT [ALL] ...
Posted in postgresql and greenplum | 1 Comment »
星期三, 一月 14th, 2009
为了帮助大家快速掌握在GP上的开发,整理了一份GP和ORACLE开发的对照手册。
具体如下:
1,连接数据库
语法:
ORACLE :sqlplus etl/etl
GP :psql -U etl
备注:
上面的操作为以etl用户的身份登陆数据库。
2,创建非分区表
语法:
ORACLE :CREATE TABLE test(id NUMBER,name VARCHAR2(40);
GP :CREATE TABLE test(id INT,name VARCHAR(40)) DISTRIBUTED BY (id);
备注:
ORACLE和GP中的数据类型有些不同,附录中会有具体的GP数据类型的列表。
另外的不同是GP中的建表语句最后会有distributed by (id),这个语句的含义是按照id的hash值将表test中的记录分布到GP的各个结点(segment)上。
GP的架构决定数据在各个结点分布得越平均,那么数据操作的性能就越好。所以我们选择distributed列的时候要特别注意,应该选择那些重复值多的,选择性高的列。
distributed列也可以是多个字段。如果不指定distributed列,那么系统会选择主键列或者表的第一个列。
3,创建分区表
语法:
ORACLE :CREATE TABLE test(id NUMBER,name VARCHAR2(40),birth_day DATE)
PARTITION BY RANGE(birth_day)
(PARTITION p20090101 VALUES LESS THAN (TO_DATE('20090102','yyyymmdd')),
PARTITION p20090102 VALUES LESS THAN (TO_DATE('20090103','yyyymmdd')),
PARTITION p20090103 VALUES LESS THAN (TO_DATE('20090104','yyyymmdd')));
GP :CREATE TABLE test(id INT,name VARCHAR(40),birth_day DATE)
DISTRIBUTED ...
Posted in postgresql and greenplum | Comments Off
星期四, 一月 8th, 2009
<1>
<2>
<3>
<4>
<5>
<6>
<7>
<8>
Posted in 照片看风景 | No Comments »