至于Win10安vs2013简体中文语言包无法安装的题材

手上,工作吃一个路的数量 Table 和 Stored Procedure 在 DB2
数据库,需要看的。下面将施用过程遭到相遇的几个问题整治下:

Win10下安装VS2013后无法安装VS2013中文简体语言包,提示Windows程序兼容模式既开拓。

(说实话,DB2 并没 SQLServer 好用,也或本身是不过小白了,有待于发展
…)

 

条件搭建

(1)DB2Client

DB2 客户端:DB2 v9.1

装到位后,可以通过cmd命令行查看 DB2Client 相关信息:

  • db2level:查看DB2Client版本信,包括32/64位

在开始一直运行 db2cmd 来运行 db2cmd.exe 启动 db2命令行程序,执行 db2:

图片 1

事后,可以履连接数据库、访问数等操作。

db2命令行连接数据库

catalog tcpip node runnode_My remote IP server Port
catalog database calldb_Dest as calldb_My at node runnode_My

还管 用户名和登录密码 即可访问数据库了。其中,DB2 数据库默认端口是
50000。

connect to calldb_My user 用户名 using 密码

(2)Quest
Central

DB2 可视化工具:Quest Central for DB2 v5.0.2.4

至于注册码

  • Quest Central for DB2:2-95710-05964-91891-64750 和 Bergelmir/CORE
  • Knowledge Xpert for DB2:147851648424638496327 和 stenny

装后,启动遇到如下问题:

图片 2

釜底抽薪办法:程序及点击鼠标右键–>属性–>兼容性;勾选以配合模式运作是程序(兼容windowsXP);勾选以管理员身份运行程序,即可解决。

具体操作

通过 db2命 连接到数后,在 Quest Central
首页会显示都连的对应数据库的连接结点。

除外 Quest Central 外,还闹另 DB2但视化工具,可扩大学习。

釜底抽薪方案:

基本功运用

事先多是为此 SQLServer,初次操作 DB2
数据库,虽说语法大多接近,还是各种不顺手。

至于DB2,相关材料以及本本推荐:

  • 牛新庄
    -《循序渐进DB2》《深入解析DB2》《DB2性能调整与优化》
  • 《DB2 Express-C 快速入门》

此外,可参考:DB2中国社区;

一个服务器可以建造多个实例,一个实例下好建造多个数据库,一个数据库可蕴涵多只说明空间。

几乎单注意事项

  • SQL 语句必须使因 ; 结尾
  • declare 定义变量不要带 @,这是和 SQL Server 的区分
  • SQLSTATE 和 SQLCODE 可以供 SQL 命令的运转状态
  • 仓储过程调用:call ProcedureName(inVal, …, inVal, ?, … ,
    ?);,其中,? 是出口参数占位符
  • NULL
    对于完整性约束和查询带来负效应,建议表中不过好未尝空值,在建表时增长非空约束
  • 表明存储于说明数据空间,索引存储于目录数据空间
  • 分区提高系统特性

常用命令

(1)查询

// 查看表字段信息
[1]. describe table schemaName.tableName;
[2]. describe select * from schemaName.tableName;
// 查看表索引信息
[1]. describe indexes for table schemaName.tableName show detail;
[2]. select * from syscat.indexes where tabname='大写的表名';

(2)删除

// 删除索引
drop index schemaName.indexName;

(3)重命名

// 重命名 表名
rename table schemaName.oldTabName to newTabName;
// 重命名 字段
alter table schemaName.TabName
    rename column oldColName to newColName;

中间,表 oldTabName 不要产生外键约束与视图引用。此外,尽量避免字段重命名。

建表

早就知晓是表 tabSqh,创建 tabSqh 的副本 tabSqh_Copy:

CREATE TABLE tabSqh_Copy like tabSqh;
INSERT INTO tabSqh_Copy select * from tabSqh;

瞩目,该办法就复制表结构以及表数据,tabSqh_Copy
没有相关的表约束,需要手动添加:

alter table tabName
    add constraint P_tabName primary key(IDKey);
alter table tabName1
        add constraint F_IDKey foreign key (IDKey)
                references tabName2 (IDKey)
on delete restrict on update restrict;        

外连锁约束添加方法而是之。

SELECT 高级用法

这里介绍 select 在 DB2 中的 3 种植尖端用法:

(1)复制表结构

CREATE TABLE new_table_name LIKE table_name; 

(2)创建结果说明

CREATE TABLE new_table_name AS (
    SELECT * FROM table_name
) DEFINITION ONLY; 

(3)创建物化查询表(MQT)

create table new_table_name AS (
    select * from table_name
) data initially deferred refresh deferred;   
refresh table new_table_name; 

物化表SELECT语句看似一个查询,没有真的形成表,类型显示也Query,但它了可以当表来用。 

删表

(1)删除单行数据还是批量抹数据:方法2于办法1性好

// 方法1
DELETE FROM tabName WHERE 过滤条件  
// 方法2
DELETE FROM  
(  
    SELECT * FROM tabName WHERE 过滤条件  
);

(3)全表数据删除

// 方法1
DELETE FROM tabName;
// 方法2
DROP TABLE ...
CREATE TABLE ...
// 方法3
ALTER TABLE tabName ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE;

(4)直接删除表

DROP TABLE tabName;

临时表

DB2的临时表基于会话(session),且会讲话中相互隔离。当会说话了时,临时表的数量被剔除,临时表也会见让去除。

临时表的作用:

  • 封存中间结果集,以便任务的接轨处理
  • 免复杂的SQL语句,将一如既往长条较为复杂的SQL语句分解变成多修简单的SQL语句,提高运行效率

    // 创建临时表
    DECLARE GLOBAL TEMPORARY TABLE session.TmpTableName
    LIKE rvc.TableName INCLUDING COLUMN DEFAULTS
    WITH REPLACE
    ON COMMIT PRESERVE ROWS
    NOT LOGGED;
    // 向临时表中插数据
    INSERT INTO session.TmpTableName
    SELECT * FROM rvc.TableName WHERE <过滤条件>;

中间,NOT LOGGED 代表不记录日志,WITH REPLACE
代表只要曾存在临时表则替换的,ON COMMIT PRESERVE ROWS
表示commit后依然保留表中的数据。之后,临时表可以用作是普通表,查询、联表均只是。

有关session临时表的几乎独问题:http://www.db2china.net/Question/28913

至于session临时表控制选项 ON COMMIT PRESERVE
ROWS的解释:http://www.db2china.net/Article/9916

小心,全局临时表允许创建索引、但未同意创建主键和唯一约束。创建的旋表同原表有同之表结构,但是相关列的特性(主键、外键、唯一约束、索引等)信息是没的。

其它信息但参看:DECLARE GLOBAL TEMPORARY TABLE –
IBM;

DGTT 与 CGTT

上述临时表均为 DGTT(已扬言的大局临时表),DB 9.7 开始支持
CGTT(已创造的大局临时表)。

共同点:

  •  支持因会话的多寡
  •  支持索引,但切莫支持唯一约束或主键

双面都支持因会话的多寡。

CGTT 优点:

  •  持久化的,在系装置时优先创建、供之后共享之,而 DGTT
    是以有平回答中声称、仅供该会话使用;
  •  避免以每用户会话开始时宣称临时表的渴求;
  •  采用与一般表相同的模式规则,而 DGTT 必须是稳的模式 SESSION;

创建 CGTT:

CREATE GLOBAL TEMPORARY TABLE <table_name> (
    <column_name>  <column_datatype>,
    <column_name>  <column_datatype>,
…  )
ON COMMIT [PRESERVE|DELETE] ROWS
ON ROLLBACK [PRESERVE|DELETE] ROWS 
[NOT LOGGED|LOGGED] 
DISTRIBUTE BY HASH ( col1,..)
IN <tspace-name>;

另详细信息可参照:DB2 临时表 – DGTT 和
CGTT;

索引

目录是稳步键值的聚众,每一个键值指向表的一行。

目是相同拿双刃剑,当表的目录过多时,数据删除、插入和换代频率会跌,当索引了少还是设计无客观时见面潜移默化多少的查询效率。尽量不要在含
null 值的字段上起(单列)索引,因为索引不会见储存该修记下之消息。

对于做索引,引导列(组合索引中排除在极端左边的排)对查询语句中where条件的震慑最特别。因此,应该对索引键中之排本重复值由少至差不多的逐条排序,该排序会要索引键提供最佳性能。

优点:

  •  加快查询速度
  •  避免不必要之表扫描 或 排序操作
  •  减少死锁的发
  •  唯一性索引保证数据的唯一性

缺点:

  •  额外的存储空间
  •  索引创建同保安的耗时

统计信息

数据库对象的统计参数信息,如表的数据量大小、占用的页数、表的行数、索引的景况以及各地的分区情况相当。

一个SQL在描写了并运行后,我们只是报DB2失做呀,而无是哪些错过做。具体怎么做,取决于优化器。优化器为了转变绝精美的施行计划,需要控制当前之网信息、目录中之统计信息相当。runstats
命令就用来集数据库对象的状态信息,对优化器生成极优秀的实行计划重大。

对数据表频繁的insert,
update,会促成数据库存储着起物理碎片,runstats可以对数据库进行数量整合,有助于数据块连续化、提高多少存取的效率,原理类似于OS中之磁盘碎片整理。

// 针对表
runstats on table schemaName.tableName;
// 针对表和索引信息
runstats on table schemaName.tableName [with distribution] and [detailed] indexes all;
// 针对某个单一索引
runstats on table schemaName.tableName for/and indexes schemaName.indexName;

1,随便找找个文本夹将简体中文语言包放入其中,发送快捷方式到桌面,右击快捷方式

尽计划

当涉及项目数据库调优过程被,SQL语句是涉性能问题之机要缘由,而尽计划虽是解说SQL语句执行过程的言语。

  •  不同数据库中对于实施计划之意味方法各不相同
  •  每次导入存储过程,生成的存储过程执行计划不自然完全相同,受时的数据库参数、统计信息的震慑

SQL语句之执行过程一共包含两只关键环节:

  •  数据读取方式(scan):表扫描
    or 索引围观
  •  表之间什么进展连续(join):包含Nest
    Loop 、Merge Join、Hash join及半总是等、多表间的接连各个选择

关于多表间连接的逐一选择问题:

管在平等条SQL语句被蕴藏了稍稍张表连接,同一时刻才出有限摆放表进行连续,但基本上表间的总是各个吗是控制性能的重要缘由。数据库对于表的逐一的抉择,根据两独说明内接连后得出的行数进行排序,如果统计信息以及实际情形不是较生,有或会见造成由于总是各个不当而招致的性能问题。

系消息请参见:DB2执行计划浅析;

对有些复杂的SQL,建议使用
Quest Central 中之 SQL Turning 功能,比较直观。

SQL语句执行计划的任何查看方:

(1)db2expln

db2expln执行计划分为三组成部分:

  •  当前集执行计划之言辞
  •  执行计划详细信息
  •  执行计划图:从下于上,从左往右,按照号码从很到小之相继进行阅读

以cmd命令执行运行 db2expln
命令,可以查该令的采用帮助。

db2expln -d 数据库名称 -u 用户名 密码 -q "sql语句"[-f "文件名.sql"] -t -o 输出文件名.out

里,文件名.sql 中的大半长达独立的SQL语句各占1履行,行末不要带分号。

db2expln -d dbName -u sqh cmb@2018 -q "sql语句" -g -t -o tmp_sqh.out
db2expln -d dbName -u sqh cmb@2018 -f "sqh.sql" -g -t -o tmp_sqh.out

针对上述命令的分解:

  • -t:输出及终端,-o:输出及文件
  • -q:执行一个SQL语句,-f:执行有保存了差不多长达SQL语句的文书
  • -g:图形化显示
  • -z:指定SQL语句间的隔符

参考:用 db2expln 的 DB2
SQL性能优化示例;

(2)db2exfmt

该方法要以DB2安目录 …\IBM\SQLLIB\MISC\ 下有 explain.dll
文件,有待于越读书。

关于查看存储过程的实行计划

先是,获取存储过程相呼应的管

SELECT bname, bschema, pkgname, pkgschema 
FROM syscat.packagedep
WHERE btype='T' AND pkgname in (
     select bname from sysibm.sysdependencies where dname in (
            select specificname from syscat.procedures where procname='存储过程名称' AND procschema='存储过程模式名称'
     )
);

然后,再通过如下命令获取包着的实行计划

db2expln -d 数据库名称 -u 用户名 密码 -g -c 包模式名称 -p 包名称 -s 0 -t -o tmp_sqh.out

专注,上述代码获取存储过程对应的管教,某些情况下询问不至消息,至于为甚还无亮堂,再提供其他一样种植方式

select c.PROCSCHEMA, c.PROCNAME, b.* 
from syscat.STATEMENTS b, syscat.PROCEDURES c, syscat.ROUTINEDEP d
where b.pkgname = d.bname
      AND c.SPECIFICNAME = d.SPECIFICNAME
      AND c.PROCSCHEMA   = d.ROUTINESCHEMA
      AND c.PROCSCHEMA   = '存储过程模式名称' AND c.PROCNAME = '存储过程名称'; 

总的,鉴于数据库存储过程实行计划之多变性,建议:

  •  runstats + rebind
  •  删除重建 

runstats
命令参见上述统计信息有,下面让闹别样常用命令

// 重新绑定包
rebind package pkgSchemaName.pkgName;
// 更新 package cache 中的执行计划
flush package cache dynamic;

专注,runstats
仅是创新实施计划的一面(对动态SQL生效、但对存储过程无效),另一方面还欲
rebind 包(对创新存储过程执行计划才使得)。

选属性,并于对象一致圈最后补充加文本 -Uninstall,点击确定(注意有个空格)

 图片 3

  

2,打开快捷方式,出现个别个挑选,一个修复一个卸载,点击修复,中间修复过程中,程序可能提示语言不配合当前本,直接确定即可。

瞩目安装过程被毫无打开vs2013

 图片 4

 

3,安装完毕以后打开vs2013,此时理应于Tools-Option选项中来看中文选项了,选择简体中文即可。如果顺利完成这个进程,此时你曾得以打开VS2013于Tools-Option选项中观看中文选项了。

  如果界面直停留在Microsoft VS2013
准备画面,强制关闭安装界面重开电脑,此时打开vs2013应当都是中文界面了

图片 5

 

图片 6

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图