用ORACLE建变的查询很快出结果,但是建表没有反应,是怎么回事喃?
例如
CREATE TABLE TMP_TEST1 AS
SELECT * FROM AAA;
这个语句执行不出来,但是执行
SELECT * FROM AAA;
很快就能出结果

解决方案 »

  1.   


    执行不出来, 这个的表现是什么?是报错?还是SQL 不能结束,一直在运行?  现在的用户有创建表的权限吗? 
    ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977
      

  2.   

    SELECT * FROM AAA;
    很快就能出结果。是出来所有数据,还是部分数据
    大数据量表,从开始返回结果,到结果全部返回,需要相当长时间。
    建表必须把所有工作全部完成,才会提示你创建成功~
      

  3.   

    你试一试这个create table new_demo as select * from demo where 1=0;
      

  4.   

    你的应该是ORACLE10G的吧?这个应该是ORACLE的一个BUG,我也经常遇到这个问题,我们应用的RAC,一般有时是一个实例出现这种情况。出现这个问题时,把数据库重启下就好了。
      

  5.   

    LZ你的数据库是不是在archivelog模式下,如果是,就检查一下db_recovery_file_dest_size的大小吧(archivelog默认都在这目录下),然后看看文件夹是不是写满了。归档日志写满了日志就无法写入,日志组无法切换,稍大一点的事务操作都会被挂起。
      

  6.   

    60W的数据要一次转也是不小的,我个人建议先创建表然后分批转,但是如果要一次转呢,我建议是先将表创建好,然后再转,试一试一下办法,不知道是否符合你的要求:
    1、创建表:
    CREATE TABLE TMP_TEST1 AS
    SELECT * FROM AAA
    WHERE 1=2;2、一次转存:
    INSERT /*+append*/ INTO TMP_TEST1 NOLOGGING
    FROM AAA;若分批转类似写个分页吧,呵呵,一次一般10W就差不多比较多了,另外AAA查询出来很快,可能你应该是用第三方软件查询的吧(如:PL/SQL)他会自动提取前面一部分数据,一般最多就前面几十条数据类似于你分页的第一页一样,后面的结果集就不会提取出来了,如果你直接下拉60W条数据,估计就没有那么快了吧,因为需要将60W条数据(少说也应该有100M吧)所暂用的容量通过网络传送过来。
      

  7.   

    不好意思,上面的SQL写快了,有点问题,我稍微修改了一下,如下:60W的数据要一次转也是不小的,我个人建议先创建表然后分批转,但是如果要一次转呢,我建议是先将表创建好,然后再转,试一试一下办法,不知道是否符合你的要求:
    1、创建表:
    CREATE TABLE TMP_TEST1 AS
    SELECT * FROM AAA
    WHERE 1=2;2、一次转存:
    INSERT /*+append*/ INTO TMP_TEST1 NOLOGGING
    SELECT * FROM AAA;如果可以分批转的话,就类似写个分页吧,呵呵,一次一般10W就差不多比较多了,另外AAA查询出来很快,可能你应该是用第三方软件查询的吧(如:PL/SQL)他会自动提取前面一部分数据,一般最多就前面几十条数据类似于你分页的第一页一样,后面的结果集就不会提取出来了,如果你直接下拉60W条数据,估计就没有那么快了吧,因为需要将60W条数据(少说也应该有100M吧)所暂用的容量通过网络传送过来。