• 网志分类
  • » 查看所有日志 (9)
    » 技术相关 (5)
    » 云淡风轻 (0)
    » 人文社会 (1)
    » 经济民生 (1)
    » 杂烩知识 (2)
  • 最新评论
  • 站内搜索
  • 友情链接
  • » 我的歪酷 非非共享界
    » 缤纷译斐

    订阅 RSS

    歪酷博客

    0000509

    andzen @ 2008-05-09 16:55

    ORACLE 10g的功劳薄和忏悔书

    Doc id       Document title
    -------------------------------------------------------------------------
    302663.1  10.1.0.4 Patch Set - Availability and Known Issues.mht
    356201.1  10.1.0.5 Patch Set - Availability and Known Issues.mht
    401435.1  10.2.0.3 Patch Set - Availability and Known Issues.mht
    555579.1  10.2.0.4 Patch Set - Availability and Known Issues.mht
             
       
    295763.1  10.1.0.4 Patch Set - List of Bug Fixes by Problem Type.mht
    335869.1  10.1.0.5 Patch Set - List of Bug Fixes by Problem Type.mht
    391116.1  10.2.0.3 Patch Set - List of Bug Fixes by Problem Type.mht
    401436.1  10.2.0.4 Patch Set - List of Bug Fixes by Problem Type.mht
             
                      
    263719.1  Oracle 10g Release 1 (10.1) Support Status and Alerts.mht
    316900.1  Oracle 10g Release 2 (10.2) Support Status and Alerts.mht


    其他重要参考

    Doc id       Document title
    -------------------------------------------------------------------------
    282036.1  Minimum Software Versions and Patches Required to Support Oracle Products on IBM pSeries
    169706.1  Oracle Database on AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Installation and Configuration Requirements Quick Reference (8.0.5 to 11.1)
    263719.1  Oracle 10g Release 1 (10.1) Support Status and Alerts.mht
    316900.1  Oracle 10g Release 2 (10.2) Support Status and Alerts.mht

             
             
    ORACLE PSR List:
    --------------------------------------------------------------------------        
    9.2.0.4  = 3095277         
    9.2.0.5  = 3501955
    9.2.0.6  = 3948480
    9.2.0.7  = 4163445
    9.2.0.8  = 4547809
                     
    10.1.0.3 = 3761843
    10.1.0.4 = 4163362
    10.1.0.5 = 4505133
                     
    10.2.0.2 = 4547817
    10.2.0.3 = 5337014
    10.2.0.4 = 6810189




     
    andzen @ 2008-05-09 15:51

    融资融券的概念

      “融资融券”又称“证券信用交易”,是指投资者向具有深圳证券交易所会员资格的证券公司提供担保物,借入资金买入本所上市证券或借入本所上市证券并卖出的行为。包括券商对投资者的融资、融券和金融机构对券商的融资、融券。修订前的证券法禁止融资融券的证券信用交易。
      融资是借钱买证券,证券公司借款给客户购买证券,客户到期偿还本息,客户向证券公司融资买进证券称为“买空”;
      融券是借证券来卖,然后以证券归还,证券公司出借证券给客户出售,客户到期返还相同种类和数量的证券并支付利息,客户向证券公司融券卖出称为“卖空”。
      目前国际上流行的融资融券模式基本有四种:证券融资公司模式、投资者直接授信模式、证券公司授信的模式以及登记结算公司授信的模式。 

    融资融券的益处

      1、发挥价格稳定器的作用
      在完善的市场体系下,信用交易制度能发挥价格稳定器的作用,即当市场过度投机或者做庄导致某一股票价格暴涨时,投资者可通过融券卖出方式沽出股票,从而促使股价下跌;反之,当某一股票价值低估时,投资者可通过融资买进方式购入股票,从而促使股价上涨。
      2、有效缓解市场的资金压力
      对于证券公司的融资渠道现在可以有基金等多种方式,所以融资的放开和银行资金的入市也会分两步走。在股市低迷时期,对于基金这类需要资金调节的机构来说,不仅能解燃眉之急,也会带来相当不错的投资收益。
      3、刺激A股市场活跃
      融资融券业务有利于市场交投的活跃,利用场内存量资金放大效应也是刺激A股市场活跃的一种方式。中信建投证券分析师吴春龙和陈祥生认为,融资融券业务有利于增加股票市场的流通性。
      4、改善券商生存环境
      融资融券业务除了可以为券商带来数量不菲的佣金收入和息差收益外,还可以衍生出很多产品创新机会,并为自营业务降低成本和套期保值提供了可能。
      5、多层次证券市场的基础
      融资融券制度是现代多层次证券市场的基础,也是解决新老划断之后必然出现的结构性供求失衡的配套政策。
      融资融券和做空机制、股指期货等是配套联在一起的,将会同时为资金规模和市场风险带来巨大的放大效应。在不完善的市场体系下信用交易不仅不会起到价格稳定器的作用,反而会进一步加剧市场波动。风险表现在两方面,其一,透支比例过大,一旦股价下跌,其损失会加倍;其二,当大盘指数走熊时,信用交易有助跌作用。 

    融资融券收益与风险分析

      我国推行融资融券制度,最可能的方式是借鉴台湾地区的"双轨制"模式。成立专门的证券金融公司,作为银行信贷市场与证券市场的"防火墙"。
      融资融券的实行可能会给市场带来450亿左右新增资金,同时大大活跃交易,预计能使市场交易量大概增加30%左右,增加经纪业务收入总量只要严格遵照相关规定,券商开展融资融券业务风险是可控的。
      我国最早确定的可作为融资融券交易的股票可能集中于少数大盘蓝筹。对参与券商的资格,有可能第一步限于中金、中信等行业龙头公司,然后扩大到创新类券商范围内。
      市场影响融资融券对证券市场可能同时带来正面的和负面的影响。
    正面影响
      首先,可以为投资者提供融资,必然给证券市场带来新的资金增量,这会对证券市场产生积极的推动作用。
      其次,融资融券有明显的活跃交易的作用,以及完善市场的价格发现功能。融资交易者是市场上最活跃的、最能发掘市场机会的部分,对市场合理定价、对信息的快速反应将起促进作用。欧美市场融资交易者的成交额占股市成交18-20%左右,台湾市场甚至有时占到40%,因此,融资融券的引入对整个市场的活跃会产生极大的促进作用。而卖空机制的引入将改变原来市场单边市的局面,有利于市场价格发现。
      再次,融资融券的引入为投资者提供了新的盈利模式。融资使投资者可以在投资中借助杠杆,而融券可以使投资者在市场下跌的时候也能实现盈利。这为投资者带来了新的盈利模式。
    负面影响
      首先,融资融券可能助涨助跌,增大市场波动。
      其次,可能增大金融体系的系统性风险。
      券商收益首先,融资融券的引入,会大大提高交易的活跃性,从而为证券公司带来更多的经纪业务收入。根据国际经验,融资融券一般能给证券公司经纪业务带来30%-40%的收入增长。
      其次,融资融券业务本身也可以成为证券公司的一项重要业务。在美国1980年的所有券商的收入中,有13%来自于对投资者融资的利息收入。而在香港和台湾则更高,可以达到经纪业务总收入的1/3以上。当然,比较美国2003年和1980年证券公司收入结构可以发现,融资利息收入从13%下降到 3%,因此,融资利息收益不一定更够持久地称为证券公司的主要收入来源。而且如果成立具有一定垄断性的专门的证券金融公司,这部分利息收入可能更多地被证券金融公司获得,而证券公司进行转融通时所能获取的利差会相对较小。
      虽然在我国的融资融券制度安排下,融资带来的利息收入会相对有限,但无论如何,在目前我国融资融券刚刚引入的相当一段时期内,都会给证券公司提供一个新的赢利渠道。由于我国很可能借鉴台湾的双轨制模式,只有部分获得许可的证券公司可以直接为投资者提供融资融券,对于获得资格的证券公司而言,可以享受这个新业务带来的盈利,但没有资格的证券公司则可能面临客户的流失,因此,融资融券的试点和逐步推出势必造成券商经纪业务的进一步集中。
     
    融资融券的意义

    一 提高市场的流动性
    融资融券的启动将为市场输入新鲜的资金血液,这点将会对市场产生积极的作用(当然目前更多是心理层面上的作用)。对于市场中的存量资金而言,融资融券业务无疑有效的提高了其流动性,放大了资金的使用效用。而信用交易制度也为银行中累计不少的流动性释放到股市提供了一条新的途径。
    二 完善价格发现功能
    欧美等资本市场成熟的国家发展经历证明,融资融券者往往也是市场中最为活跃的交易者,对市场机会的把握,对信息的快速反应,和对股价的合理定位都有起到非常好的促进作用。融资融券者成为价格发行功能实现的主要推动力量。
    三 提供更多的投资手段
        融资融券是指的两个相反方向的交易。融资是指的在市场持续走强的时候,投资者可以通过融入资金购买股票而放大获利倍数;而融券是指的投资者可以在市场持续下跌的过程中卖空股票再于低位平仓补回即可。
        这样将为投资者提供一种新的获利方式,不再像以前那样,只有在市场上涨的时候才能够获利。而目前在市场下跌的时候,投资者仍然也可以获利。这种双向交易机制的建立,加上机构博弈时代的到来,也有效的降低了单边投机市场走势出现的概率,为维护市场的稳定起到了作用。




     
    andzen @ 2008-04-24 14:59

    国内习惯把摩根史丹利(Morgan Stanley)称为“大摩”,摩根大通(JPMorgan Chase)称为“小摩”。不过实际上后者经济实力大于前者.

    摩根士丹利原是摩根大通(又称FP摩根)中的投资部门,1933年美国经历了大萧条,国会通过《格拉斯—斯蒂格尔法》(Glass-Steagall Act) ,禁止公司同时提供商业银行与投资银行服务。受到《格拉斯——斯蒂格尔法案》的压力,70年前的1935年春天,在缅因州岸边的小岛农场里,摩根财团做出了不可变更的决定:将摩根银行拆分成两部分:一部分为JP摩根,继续从事传统的商业银行业务; 另一部分被分离出成立一家完全独立的投资银行,于1935年9月5日在纽约成立,名叫摩根士丹利。 摩根大通是JP摩根与大通曼哈顿银行合并后公司的名称,原来的JP摩根已经并入摩根大通了.

    1941年摩根士丹利与纽约证券交易所合作,成为该证交所的合作伙伴。公司在1970年代迅速扩张,雇员从250多人迅速增长到超过1,700人,并开始在全球范围内发展业务。1986年摩根士丹利在纽约证券交易所挂牌交易。

    大摩投行业务主要分为两大类 : 证券业务和投资管理业务。证券业务包括股票、债券、外汇、股票金融服务、商品交易、投资银行、企业咨询服务、证券包销、机构性企业营销和房地产金融;而投资管理业务包括资产管理、私人财富管理、直接投资和机构投资管理。

    大摩在中国有很多投资。如蒙牛和平安有他的很多股份。



     
    andzen @ 2008-04-16 11:44

    今天有时间测试了一下ORACLE 并发事务的时候的块分配和ITL 管理,
    略去大部分的测试过程,大概的结果小结如下:
    1. INITRANS =1 时 并发多个INSERT 事务(本次测试最多5个)的时候并不会由于ITL的争用而等待组塞,ORACLE 采取的策略是每个INSERT事物分配不同的一些块来使用,这样各个会话之间就不会产生冲突,除非段没有多余的块(次种情况与本次的主题无关).

    2.INITRANS =1 时 并发多个UPDATE事务(本次测试最多7个)的时候也不会由于ITL的争用而导致等待产生,此时ORACLE除了使用默认的ITL之外,另外动态扩展所需要的ITL,紧紧在非常极端的情况下才会出现等待,(当然应用层面的死锁或等待与本主题无关)。
      1) 该BLOCK没有FREE空间了,注意FREE参数的设置不能太小。
      2) 该块使用的ITL总数,超过该块允许的ITL的最大值min(round(block_size*0.5/24) - 2  ,255) 。
       要达到这样的极端情况实际的生产情况是很难的,应该比业务SQL的死锁出现的概率更小。


    小结:创建表的时候除非已经清楚,大部分的情况下没有必要调整INITRANS参数,通常1-4以下足够用了,INITRANS 设置非常大的时候ORACLE 有出现坏块的BUG,另外FREE 参数倒是要注意不能随意改小,除非你已经很清楚更改的后果.


    参考部分INSERT 测试代码
    ( 分3个SESSION insert的  ,x字段1开头的是SESSION  1 插入的,其他2个也类似  )

    SQL*Plus: Release 10.1.0.4.0 - Production on Wed Apr 16 10:40:17 2008
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 - 64bit Production
    With the Partitioning, Real Application Clusters and Data Mining options
     
    SQL> create table xx (x number) storage(initial 64k next 64k) initrans 2
    Table created.
    SQL>  truncate table xx;
    Table truncated.
    SQL> select dbms_rowid.rowid_relative_fno(rowid) file#, dbms_rowid.rowid_block_number(rowid) block# from xx;
    no rows selected
    SQL> INSERT INTO XX SELECT 11 FROM DUAL;
    1 row created.
    SQL>                                   
    SQL>  set linesize 200
    SQL>  column SEGMENT_NAME format a16
     select SEGMENT_NAME,EXTENT_ID,BLOCKS,BYTES from user_extents  where segment_name ='XX';SQL>

    SEGMENT_NAME      EXTENT_ID     BLOCKS      BYTES
    ---------------- ---------- ---------- ----------
    XX                        0        128    1048576

    SQL> select x ,dbms_rowid.rowid_relative_fno(rowid) file#, dbms_rowid.rowid_block_number(rowid) block# from xx;

             X      FILE#     BLOCK#
    ---------- ---------- ----------
            11         51       4590

    SQL> INSERT INTO XX SELECT 12 FROM DUAL;

    1 row created.

    SQL> select x ,dbms_rowid.rowid_relative_fno(rowid) file#, dbms_rowid.rowid_block_number(rowid) block# from xx;

             X      FILE#     BLOCK#
    ---------- ---------- ----------
            12         51       4534
            11         51       4590

    SQL>
    SQL> INSERT INTO XX SELECT 13 from dual;

    1 row created.

    SQL> select x ,dbms_rowid.rowid_relative_fno(rowid) file#, dbms_rowid.rowid_block_number(rowid) block# from xx;

             X      FILE#     BLOCK#
    ---------- ---------- ----------
            12         51       4534
            11         51       4590
            13         51       4658

    SQL> INSERT INTO XX SELECT 14 from dual;

    1 row created.

    SQL> select x ,dbms_rowid.rowid_relative_fno(rowid) file#, dbms_rowid.rowid_block_number(rowid) block# from xx;

             X      FILE#     BLOCK#
    ---------- ---------- ----------
            12         51       4534
            11         51       4590
            13         51       4658
            14         51       4658

    SQL> select x ,dbms_rowid.rowid_relative_fno(rowid) file#, dbms_rowid.rowid_block_number(rowid) block# from xx;

             X      FILE#     BLOCK#
    ---------- ---------- ----------
            12         51       4534
            11         51       4590
            13         51       4658
            14         51       4658

    SQL> commit;

    Commit complete.

    SQL>  INSERT INTO XX SELECT 15 from dual;

    1 row created.

    SQL> insert into xx select 16 from dual;

    1 row created.

    SQL> commit;

    Commit complete.

    SQL> select x ,dbms_rowid.rowid_relative_fno(rowid) file#, dbms_rowid.rowid_block_number(rowid) block# from xx order by x;

             X      FILE#     BLOCK#
    ---------- ---------- ----------
            11         51       4590
            12         51       4534
            13         51       4658
            14         51       4658
            15         51       4658
            16         51       4658
           
            21         51       4537
            22         51       4537
            23         51       4537
            24         51       4537
            25         51       4537
            26         51       4537
           
           
            31         51       4680
            32         51       4614
            33         51       4614
            34         51       4614
            35         51       4614
            36         51       4614

    18 rows selected.



    luohu   4.16  2008



     
    andzen @ 2008-04-05 09:16

        对sequence的一直以来都不是很重视,因为很少在这个上面出过什么问题,当然是在默认参数的时候,此时在sequence上消耗的消耗的资源时间等待与在table上相比,几乎可以忽略不计,创建sequence不指定cache参数的时候oracle默认设置为20,大部分的时候得普通应用不会有性能问题,除了一秒种上万次的SELECT,默认值基本够用,但是最近有个运行了几年的系统在修改程序为并行INSERT的时候响应很慢,几乎于HANG住,基本的环境是AIX 5.3 + ORACLE 10.1 RAC,由于该数据库的特殊性不能直接登录查看等待事件,只能从对方要了一相关资料和SQL,仔细察看发现该系统使用的sequence的设置是nocache,于是手动进行一些测试:

    RAC两个会话分别处于不同node同时并发循环间断去取4万个值  :            
    nocache:               2100s
    cache =1000:         55s
    差别却是好大。

    单Instance数据库单会话循环不间断去1-4万个值  测试(在家里笔记本上测试结果)过程如下:
    nocache:             37.7s          10000   
    cache :20            4.31s          10000
    cache :100         2.92s           10000
    cache :1000       5.56s          40000
    nocache:             97.7s         40000
    基本上cache 大于20的时候性能基本可以接受,最好设置100以上,
    nocache的时候性能确实很差,最大相差20倍.

    排序参数:oracle默认是NOORDER,如果设置为ORDER;在单事例环境没有影响,在RAC环境此时,多实例实际缓存相同的序列,此时在多个实例并发取该序列的时候,会有短暂的资源竞争来在多实例之间进行同步。因次性能相比noorder要差,所以RAC环境非必须的情况下不要使用ORDER,尤其要避免NOCACHE   ORDER组合;

    是以为戒,不要随便更改oracle的默认属性,要改也往乐观的方向改,特别是在RAC上,啥事都得小心谨慎些。

    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options

    SQL>
    SQL> create user ikl identified by ikl
      2  ;

    User created.

    SQL> grant dba to ikl;

    Grant succeeded.

    SQL> conn ikl/ikl
    Connected.
    SQL> create sequence seq_1 nocache;

    Sequence created.

    SQL> set timing on
    SQL> declare
    x number ;
    begin
      for i in 1 .. 10000 loop
      select seq_1.nextval into x from dual;
      end loop;
    end ;
      8  /

    PL/SQL procedure successfully completed.

    Elapsed: 00:00:37.88
    SQL>  create sequence seq_2 cache 20;

    Sequence created.

    Elapsed: 00:00:00.04
    SQL>
    SQL> declare
    x number ;
    begin
      for i in 1 .. 10000 loop
      select seq_2.nextval into x from dual;
      end loop;
    end ;
      8  /

    PL/SQL procedure successfully completed.

    Elapsed: 00:00:04.31
    SQL> create sequence seq_3 cache 100;

    Sequence created.

    Elapsed: 00:00:00.08
    SQL> declare
    x number ;
    begin
      for i in 1 .. 10000 loop
      select seq_3.nextval into x from dual;
      end loop;
    end ; 
      8  /

    PL/SQL procedure successfully completed.

    Elapsed: 00:00:02.92
    SQL>  create sequence seq_4 cache 1000;

    declare
    x number ;
    begin
      for i in 1 .. 40000 loop
      select seq_4.nextval into x from dual;
      end loop;
    end ;

    Sequence created.

    Elapsed: 00:00:00.03
    SQL>
      9  /

    PL/SQL procedure successfully completed.

    Elapsed: 00:00:05.56

     SQL>
    SQL> declare
    x number ;
    begin
      for i in 1 .. 40000 loop
      select seq_1.nextval into x from dual;
      end loop;
    end ;   2    3    4    5    6    7
      8  /

    PL/SQL procedure successfully completed.

    Elapsed: 00:01:37.66
    SQL>                

    shekou   2008.04.05   清明后一天