169it科技资讯


当前位置:  数据库>其它
本页文章导读:
    ▪SQL: Date Utility      DECLARE @date_Bing DATETIME SELECT @date_Bing = GETDATE() SELECT CONVERT(nvarchar(20), GETDATE(), 101) AS Today, MONTH(GETDATE()) AS CurrentMonth, MONTH(CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@date_Bing)),@date_Bing),101)) AS PreviousMonth, CONVERT(VARC.........
    ▪DB2 分区表增加分区          最近,需要在DB2的分区表中增加新的分区,用于存储数据,因此,就研究了DB2表的分区机制。现在总结,实现的方式共有三种,分别是:     1)、创建临时表,将原表数据导.........
    ▪DB2第一步 — 创建表      为即将创建的表建立表空间,先建立一个缓冲池,名字:BUFPOL01 CREATEBUFFERPOOL BUFPOL01 IMMEDIATE  –立即创建此缓冲池 SIZE250                .........

[1]SQL: Date Utility
    来源: 互联网  发布时间: 2013-11-15
DECLARE @date_Bing DATETIME
SELECT @date_Bing = GETDATE()
SELECT 
CONVERT(nvarchar(20), GETDATE(), 101) AS Today,
MONTH(GETDATE()) AS CurrentMonth,
MONTH(CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@date_Bing)),@date_Bing),101)) AS PreviousMonth,
CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@date_Bing)+DAY(CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@date_Bing)),@date_Bing),101))-1),@date_Bing),101) as FirstDayOfPreviousMonth,
CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@date_Bing)),@date_Bing),101) as LastDayOfPreviousMonth,
CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@date_Bing)-1),@date_Bing),101) AS FirstDayOfCurrentMonth,
CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@date_Bing))),DATEADD(mm,1,@date_Bing)),101) as LastDayOfCurrentMonth
GO


 

作者:chimomo 发表于2013-3-19 17:34:08 原文链接
阅读:5 评论:0 查看评论

    
[2]DB2 分区表增加分区
    来源: 互联网  发布时间: 2013-11-15

    最近,需要在DB2的分区表中增加新的分区,用于存储数据,因此,就研究了DB2表的分区机制。现在总结,实现的方式共有三种,分别是:

    1)、创建临时表,将原表数据导入临时表,之后将原表重建,扩大分区;

    2)、通过ALTER TABLE TAB_NAME ADD PARTITION,为表增加分区;

    3)、创建临时分区表,向临时分区表中导入数据,之后将临时分区表设置为主表的一个分区。


    下面将分别说明三种方式的具体实现:

    前提:原分区表PART_MAIN,建表SQL为:

CREATE TABLE PART_MAIN(
P_ID VARCHAR(10),
P_DATE DATE
)
PARTITION BY RANGE(P_DATE) (
PARTITION OTHERS STARTING MINVALUE ENDING '2012-03-31',
PARTITION P201204 STARTING '2012-04-01' ENDING '2012-04-30',
PARTITION P201205 STARTING '2012-05-01' ENDING '2012-05-31',
PARTITION P201206 STARTING '2012-06-01' ENDING '2012-06-30'
)
;
  需要为PART_MAIN表,增加2012-12-01--2012-12-31的数据分区。

    方法一:

a、创建临时表

CREATE TABLE TMP_PART_MAIN LIKE PART_MAIN;
b、将数据导入临时表中

INSERT INTO TMP_PART_MAIN SELECT * 
FROM PART_MAIN;
c、重建原表

DROP TABLE PART_MAIN;
CREATE TABLE PART_MAIN(
P_ID VARCHAR(10),
P_DATE DATE
)
PARTITION BY RANGE(P_DATE) (
PARTITION OTHERS STARTING MINVALUE ENDING '2012-03-31',
PARTITION P201204 STARTING '2012-04-01' ENDING '2012-04-30',
PARTITION P201205 STARTING '2012-05-01' ENDING '2012-05-31',
PARTITION P201206 STARTING '2012-06-01' ENDING '2012-06-30',
PARTITION P201212 STARTING '2012-12-01' ENDING '2012-12-31'
)
;
d、将数据从临时表导入原表中

INSERT INTO PART_MAIN SELECT * FROM TMP_PART_MAIN;
注:该方法是最简单的一种实现方式,不需要掌握DB2分区知识,就可以实现,对于老鸟来说,这种方式是不屑使用的。下面的方法将是技术提升阶段。

   方法二:

a、为表增加分区

ALTER TABLE PART_MAIN ADD PARTITION P201212 STARTING '2012-12-01' ENDING '2012-12-31'
;
b、增加分区OK,插入数据即可

注:该方法是最直接的,只要记住ALTER TABLE TAB_NAME ADD PARTITION命令就OK。

    方法三:

a、创建临时分区表

CREATE TABLE PART_OTHER (
P_ID VARCHAR(10),
P_DATE DATE
)
PARTITION BY RANGE(P_DATE) (
PARTITION P201212 STARTING '2012-12-01' ENDING '2012-12-31'
)
;
b、往临时表中增加数据(此步可以省略,在最后一步执行)

c、将临时分区表设为原表的一个分区

ALTER TABLE PART_MAIN ATTACH 
PARTITION P201212 STARTING '2012-12-01' ENDING '2012-12-31'
FROM PART_OTHER
;
注:此命令执行后,临时分区表PART_OTHER,将不以表的方式存在,而是作为PART_MAIN表的一个分区。

d、为原表新增加的分区,设置访问权限

SET INTEGRITY FOR PART_MAIN
ALLOW WRITE ACCESS
IMMEDIATE CHECKED 
;
OK,分区增加完成,可以往新分区中增加数据了。

注:该方法实现起来过于繁琐,建议了解就好。

如果想继续了解DB2的分区功能,可参考另一篇文章:http://blog.csdn.net/huaxin520/article/details/7853232。


    

作者:huaxin520 发表于2013-3-19 21:24:27 原文链接
阅读:0 评论:0 查看评论

    
[3]DB2第一步 — 创建表
    来源: 互联网  发布时间: 2013-11-15

为即将创建的表建立表空间,先建立一个缓冲池,名字:BUFPOL01

CREATEBUFFERPOOL BUFPOL01 IMMEDIATE  –立即创建此缓冲池

SIZE250                                     --大小为250(个4K)

AUTOMATIC                                --自动管理

PAGESIZE4 K ;                               --页大小为4K

缓冲池是内存中的一段空间,用于存放数据库管理器从磁盘上读取的数据或修改即将写入磁盘的数据,一个临时的用于存放表或者索引缓存的内存段。

缓冲池能够提高数据库的性能,较少磁盘IO;如果应用程序需要的数据存放于内存中,而不是去读取磁盘,那么性能其性能将会得到很大的改观;

当然,缓冲池也会将最近很少使用的数据写回磁盘,腾出更多的空间。

在DB2 V9.7 for LUW中,创建一个库的时候,默认会创建一个IBMDEFAULTBP的缓冲池,大小为250个4KB。

查看数据库版本的方法:

1.      连接数据库的时候,显示:

db2 =>connect to sample

   数据库连接信息

 数据库服务器         = DB2/NT 9.7.5

 SQL 授权标识         = ADMINIST...

 本地数据库别名       = SAMPLE

2.      命令查看

db2 =>select * from sysibm.sysversions

 

VERSIONNUMBER    VERSION_TIMESTAMP          AUTHID              VERSIONBUILDLEVEL

--------------------------   -------------------------------        ---------------------        ------------------------------

      9070500     2013-03-17-21.18.32.187000      SYSTEM             special_27924

修改一下缓冲池的大小,改为2M,还是自动存储:

ALTERBUFFERPOOL BUFPOL01 IMMEDIATE SIZE 500 AUTOMATIC;

创建表空间TBSPC01:

CREATE REGULAR  TABLESPACE TBSPC01 –-常规表空间,名称为TBSPC01

PAGESIZE 4 K                         --页大小为4K

MANAGED BY AUTOMATIC STORAGE      --自动存储管理

EXTENTSIZE 8                         --扩展数据块为8(个4K)

OVERHEAD 10.5                       --开销

PREFETCHSIZE 8                       --预取大小为8(个4K)

TRANSFERRATE 0.14

BUFFERPOOL BUFPOL01              --指定缓冲池

DROPPED TABLE RECOVERY ON;          --打开的话,可以恢复已经删除的表,常规表空间可以使用

COMMENT ON TABLESPACE TBSPC01 IS '表空间01';  -- 注释

表空间是一个逻辑的概念,逻辑上表是存放在表空间中,实质上,表是存放在物理磁盘上;一个表空间可以存放多个表,但是一个表只能位于一个表空间中。在安装创建SAMPLE数据库实例的时候,默认创建了4个表空间:

IBMDB2SAMPLEREL:常规表空间,

IBMDB2SAMPLEXML:用于存放XML数据类型的表空间

SYSCATSPACE:系统编目表空间,也就是数据字典存放的表空间

SYSTOOLSPACE:

接下来就创建表了:

CREATE TABLE ADMINISTRATOR.TEST1 (

CID CHARACTER (10)  NOT NULL ,

CNAME VARCHAR (20)  WITH DEFAULT 'unknow' ,

SEX CHARACTER (1)  NOT NULL WITH DEFAULT 'M' ,

AGE INTEGER ,

CONSTRAINT IDX_TEST_CID PRIMARY KEY ( CID),

CONSTRAINT CHK_SEX  CHECK (check sex in ('F','M')) 

ENFORCED                    --强制执行此约束

ENABLE  QUERY  OPTIMIZATION  --查询优化期间考虑此约束

) IN TBSPC01 ;

COMMENT ON TABLE ADMINISTRATOR.TEST1 IS '测试表1';

COMMENT ON ADMINISTRATOR.TEST1 ( SEX IS '性别', CNAME IS'客户姓名', CID IS '客户ID', AGE IS '年龄' ) ;

COMMENTON CONSTRAINT ADMINISTRATOR.TEST1.CHK_SEX IS '性别只能为F或者M';

查看创建的表结构及其他信息:

db2 => describe table test1

                                数据类型                      列

列名                             模式       数据类型名称      长     小数位      NULL

-------------------------------             -------------    -------------------     ----------     -----      ------

CID                             SYSIBM    CHARACTER             10    0        否

CNAME                           SYSIBM    VARCHAR              20    0        是

SEX                             SYSIBM    CHARACTER              1    0        否

AGE                             SYSIBM    INTEGER                4      0       是

 

  4 条记录已选择。

向表中添加数据:

1.      添加一行

db2 =>insert into test1(cid , cname , sex , age) values ('12082119','chenlb','M',24)

DB20000I  SQL 命令成功完成。

db2 =>select * from test1

 

CID        CNAME                SEX AGE

------------------------------ --- -----------

12082119   chenlb              M            24

 

  1 条记录已选择。

2.      添加多行:在insert into tablename values之后指定多个值。

    db2=> insert into test1(cid , cname , sex , age) values('12082111','albert','M',15),('12082011','ellen','F',10)

DB20000I SQL 命令成功完成。

db2 => select * from test1

 

CID       CNAME                SEX AGE

---------- -------------------- --------------

12082011  ellen                F            10

12082111  albert               M            15

12082119  chenlb            &

    
最新技术文章:
▪gc buffer busy/gcs log flush sync与log file sync    ▪让你的PL/SQL更好用    ▪ADO.NET中的非脱机数据库查询
▪参数job_queue_processes与Oracle jobs    ▪11gR2游标共享新特性带来的一些问题以及_cursor...    ▪_library_cache_advice和latch:shared pool、latch:shared poo...
▪SQL: Date Utility    ▪DB2 分区表增加分区    ▪DB2第一步 — 创建表
▪oracle 数据库    ▪插入10万条记录测试    ▪rebuild index VS. rebuild index online
▪如何处理undo tablespace 表空间太大的问题    ▪ado执行存储过程中包含结果集获取输出参数为...    ▪oracle函数的demo
▪Entity Framework 学习建议及自学资源    ▪存储过程的编写    ▪Linux/Unix shell 自动发送AWR report(二)
▪第二章 Oracle恢复内部原理(基础数据结构)    ▪Redis源码学习之【Tcp Socket封装】    ▪Java Jdbc减少与Oracle之间交互提升批量处理性能...
▪南大通用GBase8a Vs Oracle11g 单机测试亲测    ▪oracle 中行列转换    ▪rhel下安装oracle10g+asm---测试环境搭建
▪Redis系列-主从复制配置    ▪MySQL索引与查询优化    ▪INDEX受到NULL值的影响
▪测试人员的SQL语言 系列    ▪SQL数据库基本语句    ▪MySQL Replication常见错误整理[持续更新...]
▪eclipse下建立esper的demo    ▪把oracle rac 转化为单机数据库    ▪Redis系列-存储篇sorted set主要操作函数小结
▪基本的SQL*Plus报表和命令    ▪druid简单教程    ▪11g调度--scheduler使用
▪EF基础一    ▪db2存储过程中循环语句while do的continue有没有...    ▪oracle 创建DBLINK
▪DB2数据库备份还原    ▪Warning: prerequisite DBD::mysql 1 not found错误解决方...    ▪innotop性能监视mysql,innodb工具
▪数据迁移:DataGuard配置    ▪QX项目实战-19.跨库数据同步    ▪Mysql EXPLAIN
▪Oracle 11g AWR 系列七:Active Session History (ASH) 报...    ▪Oracle 11G新特性(共36个)    ▪父子节点问题
▪OEM简介及按钮乱码问题    ▪NoSql之MongoDB的常用类管理    ▪ORA-39700: database must be opened with UPGRADE option
▪node.js 访问redis数据库,pub/sub    ▪使用DBMS_REDEFINITION在线重定义分区表    ▪SQL Developer 使用问题与解决方法汇总
▪oralce 11g dataguard 概念    ▪ORA-30004 错误处理    ▪oracle分组函数rollup,cube
▪Sql Developer 使用问题与解决方法汇总    ▪Configure Oracle Dataguard Primary-ASM to Physical-ASM    ▪Oracle Data Guard 理论知识
▪Control File 恢复    ▪Oracle数据文件收缩    ▪Oracle 11g AWR 系列五:如何生成 AWR 报告?
▪Wireshark数据包分析实战(第2版)    ▪MySql用户权限控制    ▪db2和oracle查询序列区别
▪更新blob字段的存储过程    ▪MySQLReport分析报告三    ▪DB2中的序列
▪Oracle中DBMS_RANDOM.STRING 的用法    ▪SQL SERVER无法安装成功,sqlstp.log文件提示[未发...    ▪Data Guard 部署物理备库的 10 大注意事项
▪万能数据库查询分析器使用技巧之(九)    ▪SQL 自定义Split函数    ▪视图 v$sql,v$sqlarea,$sqltext,v$sqltext_with_newlines 的...
▪Data Guard Standby_archive_dest 和 Log_archive_dest_n 的...    ▪机房收费系统数据库设计(一)    ▪利用putty的SSH tunnel连接Oracle
▪DBCA建库偶遇ORA-27125    ▪使用PowerPivot建立简单的分析模型    ▪Linux/Unix shell 自动发送AWR report
▪写入到blob字段的存储过程    ▪关于JDBC中ResultSet接口的一点细节探究    ▪Data Guard 配置 Standby Redo Log
▪linux下redis的安装    ▪windows下redis的安装    ▪手动创建数据库步骤(简单翻译官方文档)
▪Ubuntu安装Mongodb    ▪SQL CLR应用    ▪redis的配置文件参数--详细说明
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号