在AnySQL.net中搜索标签(Tags) 'LOB' 的结果:

容易遗忘的手工并行

    去查询一个大表时, 大家都不会忘记Oracle的并行(Parallel)操作, 比如: CREATE TABLE xxx PARALLEL 4 AS SELECT /*+ PARALLEL(...) */ SELECT /*+ PARALLEL(...) */ FROM ...     但手工并行则易被忘记, 一个朋友花了28小时导出300多G的带BLOB的表, 我的第一反应就是为什么不用并行? 这时是指手工并行. 使用exp的Query参数. exp ... query=\"where mod(pk,4) = 0\" exp ... query=\"where mod(pk,4) = 1\"...

无SYSTEM时的LOB恢复

    本想将这种情况下的恢复步骤永远藏在心中的, 因为它在实际生活中太难以恢复了. 看到有人真的遇到了这种情况, 我还是将恢复的步骤写一下吧. 先来创建一个表空间及带BLOB字段表. SQL> CREATE TABLESPACE LOBDATA   2    DATAFILE 'C:\oracle\oradata\db10g\lobdata01.dbf' size 24m   3    extent management local uniform size 128K   4    segment space management manual; Tablespace created. SQL> CREATE TABLE T_LOB (COL1 NUMBER, COL2 BLOB) TABLESPACE LOBDATA; Table created.  ...

能在SQL Server上做点事了

    经过几个小时的努力, AnySQL连上SQL Server后已经能做点事了, 比如, 操作Text和Image字段, 和操作Oracle的LONG/LONG RAW是一码子事, 不知道SQL Server有没有BLOB/CLOB类型? 有的话也能操作, 比如将内容取出来, 或将一个文件塞进去. 不用bcp也可以将数据导出成文本文件, 或导入文本文件中的数据到表里. 当然如果是Sybase数据库, 我也一样能干这些活了. 如果有人问如何将SQL Server或Sybase数据中存放的图片文件移到Oracle或相反, 则可以联系我看看.     不过基本的功能还没有做好, 如: Oracle中的DESCRIBE命令, sp_columns或sp_help的输出实在是看不习惯. 如何在字符界面下查看一个SQL语句的执行计划, 也有Explain Plan语句吗? 如何列出当前活动的会话, 在执行什么SQL, 在等什么资源? sp_who的输出中没有这些, sp_lock能反映出锁的等待关系吗? 如何找出Top SQL, 如逻辑读最多的? 物理读最多的? 等等....

aul4b不再是Beta版了, 这里的B指的是LOB的支持

    当你下载AUL的可执行文件, 你会发现Windows下是aul4b.exe, Linux下是aul4b_linux, 而Solaris下是aul4b_solaris, 一很多人认为这是一个Beta版本, 但其实不是了. 这里的4b指的是带LOB支持的版本4. 从发行的版本号4.0.2开始, 就不再是Beta版本了, 因为它已经通过了两次正式的LOB恢复考试.     如果b加在版本号之后, 如下所示的则是Beta测试版. Register Code: TRBR-CCPF-F6KJ-ALTT-MNGQ AUL : AnySQL UnLoader(MyDUL) for Oracle 8/8i/9i/10g, release 4.0.1B (C) Copyright Lou Fangxin 2005-2007 (AnySQL.net), all rights reserved. AUL> exit  ...

AUL恢复LOB类型的速度之谜, 慢还是快?

    有人用了AUL去恢复LOB数据, 说是速度很慢, 在每份钟只生成了10M数据, 我不是很相信的. 这中间他们可能在估计速度时估计错了. 以我去过两次恢复LOB的经历, 我恢复15000个LOB值, 生成后的大小是600MB, 大约是花了不到5分钟的(记不清了). AUL在恢复LOB数据时, 有两种方式: Inline方式和File方式.     在Inline方式下, LOB的数据和表的记录是放在一个文件中的(默认), 在这种情况下恢复的速度不太可能是1分钟10MB的数据, 因为恢复一般的表时的速度是一秒钟8MB左右(我用SYS.SOURCE$做测试的), 有LOB的情况下, 文件的增长速度应当更快.     在File模式下, 每个LOB值都被存放成一个单独的文件(LOB_xxxxxxxx_xxxx.dat), 然后文本文件中相应的列则记录了这个文件名, 在这种情况下, 1分钟10MB我同意, 可是在计算恢复速度时, 应当加上生成的这些LOB文件的大小. 或者你去计算一下文件文件的记录数, 这表示有多少个LOB值被恢复了, 可以仔细看一下这儿.     如果AUL给人家留下这样错误的印象, 那这是相当不幸的, 对我而言到还好, 对他们而言则是他们错过了最好的恢复数据的方法,...

由一个目录下可以存放多少文件引出的问题

    一个目录下(没有子目录)最多可以存放多少个文件? 我现在也不知道答案. 只不过文件太多时, 很不方便, 不能进行ls等操作, 而且访问可能会很慢.     今年总共进行过两次LOB数据类型的恢复, 而且都是恢复成文本格式的, 这样的话, 每一个数据库中的LOB值都被恢复成一个文件, 存放在运行AUL的目录下. 还好这两次恢复出来的文件数不多, 都只有1.2万条左右的记录, 恢复后生成了1.2万和1.5万个文件, 就这样已经让某些目录操作不太方便了. 遇到更多的LOB记录要恢复怎么办?     遇到更多的LOB记录怎么办? 为此在AUL中新增了一个设置选项, 用于设置恢复时LOB文件存放的子目录的个数, 默认值是500, 也就是恢复出来的LOB文件会被存放在最多500个子目录中. 这个值是可以调整的(范围: 100-2000), 采用记录所在的块号和这设置值的余数来确定存放的目录, 这样的话对于同一个设置的恢复, 生成的文件位置是固定的, 但问题可能是不够随机, 不能让LOB文件平均分配到各子目录. 如下所示: AUL> set MAXLOBDIR 1000   Current...

Enable/Disable行内存贮的LOB字段性能分析

    定义LOB字段时可以加上ENABLE/DISABLE STORAGE IN ROW的存贮属性, 默认情况下是ENABLE STORAGE IN ROW的, 这种情况除了在值小于4000字节时会将值直接存在行内以提高性能外, 对于再大一点的LOB值的存取也是有性能影响的, 请看下面的在10g版本中做的测试例子, 先建一个表, 包括两个CLOB字段, 并插入一样一样的大于4000字节的值. SQL> create table t_lobtest (col1 clob, col2 clob)   2  lob (col2) store as (disable storage in row); Table created. ASQL> SELECT DBMS_LOB.GETLENGTH(COL1) COL1_LEN,     2        DBMS_LOB.GETLENGTH(COL2) COL2_LEN...

宣布AUL 3退役, AUL 4开始工作.

    AUL 4是在AUL 3的基础上加上了对Oracle BLOB/CLOB数据类型的支持, 于2006年12月份开始修改工作, 于2007年1月份发布了Beta版本. 在经历一次正式的恢复需求后会将Beta版本发布为正式版本, 现在已经到时间了. 不久前成功地为一个外国客户恢复了一个有BLOB字段的表, 总共恢复了12922个图片/PDF/DOC等文件, 恢复出来的数据成功地得到了客户的认同, 图片打开没有问题, 只有少数(小于10个)的PDF文件打开后是空白页, 这就不确定是谁的问题了. 因此郑重宣布AUL 3退役, AUL 4版本正式开始战斗, 最新的版本是4.0.2.     需要非常感谢客户对我的支持, 在这一次恢复中, 原来用的是Beta版本直接拷贝出来的4.0.1版本, 在恢复过程中遇到了两处Bug问题, 客户很仔细很耐心地支持我对Bug的修改, 这种配合精神我在国内的客户中少有遇到. 除了遇到Bug找过我之外, 这位国外客户仔细阅读我的英文Blog上的文档, 没有问过我什么问题, 这一点我们更需要向他们学习了. 这次修复的Bug主要有两处: 1, 在Chained或Migrated行中存放的LOB字段不能恢复.     原因: 没有将LOB索引的信息传给处理Chained和Migrated记录的子程序....

AUL 4中如何恢复分区表的LOB字段?

    当遇到分区表的LOB字段时, 不能直接进行恢复, 需要修改一下AULOBJ.TXT中的LOB索引分区的名称, 这是由于LOB索引的分区名和表的分区名不同引起的, 而我的程序是假定是具有相同的分区名的. 请看下面的演示, 先创建一个有LOB字段的分区表: SQL> CREATE TABLE T_HASHLOB (COL1 NUMBER, COL2 CLOB)   2  LOB(COL2) STORE AS (DISABLE STORAGE IN ROW)   3  PARTITION BY HASH(COL1) PARTITIONS 2; Table created.     接下来插入几条记录, 交提交, 到SYS用户下进行CHECKPOINT. 在AUL 4中重新UNLOAD系统数据字典后, 用DESC来看一下T_HASHLOB表的情况: AUL>...

AUL 4 Beta程序更新情况 - 2006.12.21

    这几天对AUL 4继续进行完善, 比刚发布Beta时的程序已经好多了, 不过版本号还是没有变化. 先来重温一下刚发布时的一些限制吧. 没有经过足够多的测试. 目前的测试仅在10g上进行. 对于CLOB的字符集转换还有些问题. 对LOB Index的访问用Index Full Scan的算法, 需要改进. 对于CHUNK SIZE大于一个数据块的情况还不支持.     到现在又有那些改进呢? 做了更多的测试, 不同大小的CLOB/BLOB, Inline或Outline的 在8i上也做了一些测试 CLOB的字符集转换支持GBK和UTF8. 对LOB Index的访问已经采用Index Range Scan的算法. 可以指定CHUNK SIZE了.     已经对现在的程序充满信心了, 正在等待实践的检验. 留下仅有的一个问题是, 如何支持同一表的LOB的CHUNK大小不同的情况....

为什么LOB或LOB Index的分区名称和表的分区名不同?

    当我们创建一个LOCAL的索引时, 这个索引各个分区的名称和表的相应分区的名称是相同的, 但LOB分区及LOB Index分区的名称则是系统产生的. 不知道Oracle为什么顺道改一下?     下面的查询结果是在10g上进行的, 创建了一个有CLOB字段的分区表, 然后到OBJ$中去查询: SQL> select obj#,name, subname from obj$   2  where owner#=25  and obj# > 10000 order by obj#;       OBJ# NAME                           SUBNAME ---------- ------------------------------ ---------------      10006 T_PRTLOB      10007 T_PRTLOB                       SYS_P21     ...

AUL 4现阶段对LOB CHUNK的支持情况

    通过试验, 发现LOB的一个CHUNK中的所有块必须是在一个Extent中的, 并且是连续的, 不相信的话你可以试试能不能指定CHUNK的大小的值为大于表的Next Extent的值? 基于这个规律, 在AUL 4中增加了对CHUNK的有限支持. 下面上用于测试的两张表, 只有一个字段, 为CLOB类型, 表中只有有一条记录, 内容相同: SQL> SELECT TABLE_NAME,COLUMN_NAME,CHUNK FROM USER_LOBS; TABLE_NAME      COLUMN_NAME       CHUNK --------------- ------------ ---------- T_CHUNK2        COL1              32768 T_CHUNK1        COL1              16384     接下来用新增的CHUNK选项指定表中所有LOB的CHUNK大小, 单位是数据块, 默认值是1, 从这儿我们可以看出如果一个表中有多个LOB字段, 且CHUNK大小不一样, AUL 4现在还是不支持的. 下面我们将LOB内容导出成独立的文件: AUL> set clob_edian...

在10g(Windows)上测试LOB数据的DMP格式恢复

    现在我们将两张LOB的演示表, 用AUL 4.0.0 Beta恢复成DMP格式, 然后看看能不能成功导入到数据库中: AUL> set clob_edian big   Current CLOB_EDIAN is : BIG AUL> set lob_convert 1   Current LOB_CONVERT is : 1-GBK AUL> set charset 852   Current CHARSET is : 0x0354 AUL> set output_style dmp   Current OUTPUT_STYLE...

在10g(Windows)上测试BLOB数据恢复

    下面是用AUL 4.0.0 Beta版本恢复Windows上10g R2数据库BLOB数据的一个演示, 首先是创建测试表: SQL> CREATE TABLE T_BLOBDEMO   2  (   3    ID NUMBER,   4    BLOB1 BLOB,   5    BLOB2 BLOB,   6    BLOB3 BLOB   7  )   8  LOB(BLOB3) STORE AS (DISABLE STORAGE IN ROW)   9  / Table created. SQL> INSERT INTO T_BLOBDEMO VALUES (1, '3031323334', NULL, NULL);...

在10g(Windows)上测试CLOB数据恢复

    下面是用AUL 4.0.0 Beta版本恢复Windows上10g R2数据库CLOB数据的一个演示, 首先是创建测试表: SQL> CREATE TABLE T_CLOBDEMO   2  (   3    ID NUMBER,   4    CLOB1 CLOB,   5    CLOB2 CLOB,   6    CLOB3 CLOB   7  )   8  LOB(CLOB3) STORE AS (DISABLE STORAGE IN ROW)   9  / Table created. SQL> INSERT INTO T_CLOBDEMO VALUES (1,'INLINE CLOB', NULL,NULL); 1...

AUL4中几个和LOB有关的选项

    AUL 4.0.0将正式支持LOB数据类型, 包括Inline LOB, In row LOB和Out of Row LOB. 这里面需要先介绍一下和LOB有关的几个选项. 首先是只和CLOB有关的两个选项:     1, SET CLOB_EDIAN {BIG | LITTLE}     当数据库中的字符集为固定长度时(如单字节字符集和那些字符集名字中后缀是FIXED), 存贮在CLOB中的数据的字符集和数据库的字符集相同. 然而当数据库的字符集为变长时, CLOB中的数据以固定的Unicode格式存贮, Unicode字符集包括两个字节, 因此就有高位优先(Big Edian)和低位优先(Little Edian)的问题. 在10g以前, CLOB的字节优先和机器的硬件相同, 从10g开始, CLOB中的Unicode则总是高位优先(Big Edian)的. 因此增加这个选项来指定CLOB的字节顺序.    ...

AUL/MyDUL 4.0.0 Beta发布了

    去年我曾经说, 如果AUL能支持LOB或压缩块的任一功能, 都会将版本升一级. 今天发布4.0.0 Beta版本, 是对LOB的支持有了进一步的突破.     你可以下载Beta版本进行LOB恢复测试. 恢复LOB需要设置很多的选项, 这些选项会在以后的文章中介绍. 为什么是Beta版本, 有如下原因: 没有经过足够多的测试. 目前的测试仅在10g上进行. 对于CLOB的字符集转换还有些问题. 对LOB Index的访问用Index Full Scan的算法, 需要改进. 对于CHUNK SIZE大于一个数据块的情况还不支持.     当然也有一些目前同类软件还不具有的特点, LOB的数据可以恢复成DMP格式, 以方便装载.     同其他恢复软件一样, 要利用这个功能, AUL所需的字典信息必需存在(有System表空间或手工编辑它们). 将会在以后的二到三个月时间内进行最大程度的改进, 和足够多的测试, 希望能在农历年后发布4.0.0正式版本....

如何将BLOB的内容转到LONG RAW中

    PL/SQL基本上对于LONG RAW和BLOB无能为力, 对于这两种需要自已写程序来实现. 在AnySQL中就可以将BLOB的内容转换成LONG RAW, 下面是一个例子. 先来建一张测试表: ASQL> SET QUERYONLY FALSE ASQL> CREATE TABLE T_BLOB (ID NUMBER NOT NULL, IMAGE BLOB); Create Table Succeed. ASQL> VAR P_IMAGE BLOB ASQL> DEFINE P_IMAGE=ASQL.EXE ASQL> INSERT INTO T_BLOB VALUES (1, :P_IMAGE);...

AnySQL中的特色功能介绍(八) -- 更新LONG/LOB列

    常看到有人问如何更新LOB或LONG类型的字段中的内容, 在SQL*Plus中是不容易的, 在AnySQL小工具中, 除了可以用LOB类型的主机变量, 我设计了LOB和LOBIMP命令来对这些数据类型进行查询操作, 这些命令可以将运行AnySQL的机器(非服务器端)上的文件上传更新到LONG/LOB字段中.     LOB命令语法, 这里面query应当只返回一行及一列(LONG或LOB类型), 在SELECT中应当加上"FOR UPDATE"子句表示锁定LOB进行更新. Usage:   LOB query << file Note :   << mean import a file to blob/clob field, the query      should include the for update clause    ...

AnySQL中的特色功能介绍(七) -- 查询LONG/LOB列

    常看到有人问如何查看LOB或LONG类型的字段中的内容, 在SQL*Plus中是不容易的, 在AnySQL小工具中, 我设计了LOB和LOBEXP命令来对这些数据类型进行查询操作, 这些命令都将LONG/LOB字段中的内容检索到客户端的机器(非服务器端).     LOB命令语法, 这里面query应当只返回一行及一列(LONG或LOB类型). Usage:   LOB query >> file Note :   >> mean export long/long raw/blob/clob to a file     LOBEXP命令语法, 这里面query应当只返回两列, 第一列为文件名, 第二列为LONG或LOB字段. Usage:   LOBIMP query Note :   Query should return...

AnySQL中的特色功能介绍(五) -- 更新插入LONG/LOB

    在AnySQL中可以比较方便地操作LONG/LONG RAW类型, 将客户端文件插入或更新到这些字段中, 这是SQL*Plus没有办法做到的.     首建来建一个包括一个LONG字段的测试表, 如下所示: ASQL> DESC T_LONG NO# NAME             NULLABLE TYPE --- ---------------- -------- ----   1 COL1                      LONG     接下来我们来插入一个Shell文件到一条新的记录中, 你也可以用Update语句来更新一个LONG/LONG RAW字段, 只需要声明一个CLOB(更新LONG)或BLOB(更新LONG RAW)类型的AnySQL宿主变量(Host Vairable), 并赋给一个文件名作为值, 在Insert/Update语句中直接引用就可以了, 如下所示: ASQL> VAR P_LONG CLOB ASQL> define...

用SQLLDR来装载CLOB/BLOB列的控制文件例子

    Oracle的SQLLDR是用来将文本文件中的记录装载到数据库中的工具, 其并行(Parallel),直接(Direct)的装载模式是目前所知最快的方式. 不过用于指定文本格式的控制文件有点难于写, 我在写时也经常需要查阅文档. 为了方便我还是在这儿写一个例子吧, 下面是样表的结构: SQL> create table test(   2    num_col number(10),   3    char_col char(10),   4    var_col  varchar2(10),   5    date_col date,   6    blob_col blob,   7   ...

Oracle 9i临时LOB对象过多使用临时表空间的一个错误设计

    这是一个在Oracle 9i上的Bug, 问题发现于数据库从8i升级到9i时, 发现占用了大量的临时段. 与其说是Bug, 更不如说Oracle故意如此, 因为Oracle说这不是Bug, 而是其设计上如此. 我们在一个Session中做实验(9i)就可以了, 你可以想象一下如果你有几百个会话都在调用有临时LOB对象的角本, 而TEMP表空间的UNIFORM SIZE设得又比较大时, 总共需要多少临时空间?. ASQL> declare     2  a clob;     3 begin     4  a := 'abc';     5 end;     6 /...

根据标记(Tags)来查找:

分类 | Categories

本站基于MT-3.36免费版, 和Fenng设计的模板.
(©)版权所有, 2004 - 2008, www.AnySQL.net, 保留所有权利.
MSN: loufangxin(a)msn.com, Mail: anysql(at)126.com/support(at)iamdba.com, Skype ID:anysql