Chan Chen Coding...

          BLOBs and CLOBs


          solidDB® can store binary and character data up to 2147483647 (2G - 1) bytes long. When such data exceeds a certain length, the data is called a BLOB (Binary Large OBject) or CLOB (Character Large OBject), depending upon the data type that stores the information. CLOBS contain only "plain text" and can be stored in any of the following data types:

          CHAR, WCHAR

          VARCHAR, WVARCHAR

          LONG VARCHAR (mapped to standard type CLOB),

          LONG WVARCHAR (mapped to standard type NCLOB)

          BLOBs can store any type of data that can be represented as a sequence of bytes, such as a digitized picture, video, audio, a formatted text document. (They can also store plain text, but you'll have more flexibility if you store plain text in CLOBs). BLOBs are stored in any of the following data types:

          BINARY

          VARBINARY

          LONG VARBINARY (mapped to standard type BLOB)

          Since character data is a sequence of bytes, character data can be stored in BINARY fields, as well as in CHAR fields. CLOBs can be considered a subset of BLOBs.

          For convenience, we will use the term BLOBs to refer to both CLOBs and BLOBs.

          For most non-BLOB data types, such as integer, float, date, etc., there is a rich set of valid operations that you can do on that data type. For example, you can add, subtract, multiply, divide, and do other operations with FLOAT values. Because a BLOB is a sequence of bytes and the database server does not know the "meaning" of that sequence of bytes (i.e. it doesn't know whether the bytes represent a movie, a song, or the design of the space shuttle), the operations that you can do on BLOBs are very limited.

          solidDB does allow you to perform some string operations on CLOBs. For example, you can search for a particular substring (e.g. a person's name) inside a CLOB by using the LOCATE() function. Because such operations require a lot of the server's resources (memory and/or CPU time), solidDB allows you to limit the number of bytes of the CLOB that are processed. For example, you might specify that only the first 1 megabyte of each CLOB be searched when doing a string search. For more information, see the description of the MaxBlobExpressionSize configuration parameter in solidDB Administration Guide.

          Although it is theoretically possible to store the entire blob "inside" a typical table, if the blob is large, then the server usually performs better if most or all of the blob is not stored in the table. In solidDB, if a blob is no more than N bytes long, then the blob is stored in the table. If the blob is longer than N bytes, then the first N bytes are stored in the table, and the rest of the blob is stored outside the table as disk blocks in the physical database file. The exact value of "N" depends in part upon the structure of the table, the disk page size that you specified when you created the database, etc., but is always at least 256. (Data 256 bytes or shorter is always stored in the table.)

          If a data row size is larger than one third of the disk block size of the database file, you must store it partly as a BLOB.

          The SYS_BLOBS system table is used as a directory for all BLOB data in the physical database file. One SYS_BLOB entry can accommodate 50 BLOB parts. If the BLOB size exceeds 50 parts, several SYS_BLOB entries per BLOB are needed.

          The query below returns an estimate on the total size of BLOBs in the database.

          select sum(totalsize) from sys_blobs

          The estimate is not accurate, because the info is only maintained at checkpoints. After two empty checkpoints, this query should return an accurate response.



          -----------------------------------------------------
          Silence, the way to avoid many problems;
          Smile, the way to solve many problems;

          posted on 2012-11-30 13:44 Chan Chen 閱讀(333) 評論(0)  編輯  收藏 所屬分類: DB

          主站蜘蛛池模板: 揭阳市| 苍溪县| 贵南县| 长海县| 香港 | 肇东市| 河西区| 蓬溪县| 定结县| 洪洞县| 黔西县| 馆陶县| 松阳县| 东阳市| 广安市| 靖江市| 阿拉善左旗| 库尔勒市| 屏南县| 嘉义市| 霍州市| 迭部县| 乌什县| 绥阳县| 成武县| 望奎县| 祁连县| 阜阳市| 永宁县| 鹤山市| 德化县| 琼结县| 安图县| 乐业县| 阿瓦提县| 宁海县| 宣威市| 罗城| 铜陵市| 贵溪市| 江永县|