设计表的时候,有考虑下面这些情况吗?另有关于db2的相关知识的疑问自己查很久了,很难搜到,或者是解释的不清
设计表的时候,有考虑下面这些情况吗?另有关于db2的相关知识的疑问
自己查很久了,很难搜到,或者是解释的不清楚,现在在日本,也弄不到相关的基础书,只能来这问了。这些问题一直疑惑很久,路过的朋友,知道多少就说多少吧,拜托了!
下面这些对系统影响很大吗,能否逐一解释。
1、可变长的列(varchar)放在固定列的后面(CHARACTER)
2、为了防止取得log的冗余,经常更新的列要靠在一起。
3、出于压缩率的考虑,属于一个类别的列放在一起
索引
4、有区分索引吗?这个是做什么用的,什么场合使用?是不是这样:考虑到一个数据量很大的表,为了高校查询,把数据分散在不同的区分里,查询的时候可以把这个区分作为检索条件,这样查询速度能快。那么如果是这个意思,作为开发人员,我怎么知道数据被插入到哪个区分,我检索的时候该检索哪个区分?
5、db2有多少种类型的索引,每种索引都是和什么时候使用?
6、DPPI NPPI DPSI NPSI 都是不同索引吗?他们的特征和优缺点是什么?
表空间
7、db2的universal表空间(分Range-Partitioned和Partitioned-by-Growth(PBG)两个种类)的用途能用白话说明一下吗
8、PRIQTY,SECQTY和表空间是什么关系?
下面这些词都是什么意思
9、REBIND BIND QUIESCE LRSN
10、这些实用程序都是做什么用的? reorg runstats load unload suspend modify
[解决办法]
1、2、3根本没必要
4表分区:在数据量大的时候进行表分区,各个分区物理上独立,选择分区键需要注意
5db2只有一种索引B树
6从未见过这几个名词
7你指的是表吗,范围分区表?
8这两个参数还不是很明白,只知道跟索引分段有关
9REBIND BIND 绑定程序包、QUIESCE 停顿状态、LRSN 日志序列号,跟时间有关,每条信息唯一
10...百度...
[解决办法]
google:第三范式
[解决办法]
查很久了,很难搜到,或者是解释的不清楚,现在在日本,也弄不到相关的基础书,只能来这问了。这些问题一直疑惑很久,路过的朋友,知道多少就说多少吧,拜托了!
[解决办法]
关注相关讨论
[解决办法]
没有想过那么多~
[解决办法]
下面这些对系统影响很大吗,能否逐一解释。
1、可变长的列(varchar)放在固定列的后面(CHARACTER)
2、为了防止取得log的冗余,经常更新的列要靠在一起。
3、出于压缩率的考虑,属于一个类别的列放在一起
---------------------------
我想知道这个。
[解决办法]
对性能有细微的改善,但影响不了大局
[解决办法]感觉没必要满足3NF。。。看项目,很多都是实际情况。。。。。。。等于没说,MARK///...????
[解决办法]只能来看看`不能发表意见
[解决办法]从来没考虑过这些问题.学习了
[解决办法]4只要查询条件里有分区键,数据库会自动定位到某个分区,这是由db2优化器完成的,对用户透明
5Unique唯一索引:索引字段值每条记录都是唯一的,cluster聚簇索引:数据根据索引字段值物理排序,分区索引:索引的第一个字段是分区键
6没用过,不清楚
[解决办法]一般主键是聚簇索引、唯一索引
但也可以更改成非聚簇的,而另外找一个字段作为聚簇索引字段
每个表只能有一个聚簇索引
如果你插入顺序和聚簇索引顺序不一致的话,容易造成插入性能低下
还有,分区索引,如果你建的索引第一个字段是分区键的话,那么这个索引自动就是分区索引
[解决办法]学好db2有前程
[解决办法]db的有空想看看~~~~
[解决办法]挺好的方法啊
[解决办法]分数都没啦啊
[解决办法]分数都没啦啊
------解决方案--------------------
1、可变长的列(varchar)放在固定列的后面(CHARACTER)
这个就没必要操心了吧。
假设这么做可以提供效率,那么数据库自己就会自动这么设置了。
数据库知道表里有什么字段,知道哪些字段是固定列,哪些是可变长列。如果固定在前,可变在后可以提高效率,那么数据库自己会放过这种方式吗?
数据库完全可以自行进行字段顺序的调整,如果这种调整可以提高效率的话。
所以我们就不必操这份心了。
[解决办法]举例:表里的数据,聚簇字段为2、3、4、5、6
插入数据为1,那么1的物理上就要排在2前面,如果2前面没空间,就发生溢出,影响性能
[解决办法]这个考虑过于模式化了。。。
[解决办法][解决办法]关注相关讨论
[解决办法]只能来看看`不能发表意见
[解决办法]日本人做事太较真
[解决办法]日本人做事太较真
[解决办法]其实整个应用的性能瓶颈主要在数据库的连接上,反正数据库我只我只看重第一范式,表我只关注主键和索引,char我全用nvarchar而且设得比当时能想到的最大值还大,从我的经验看产品发布后数据库需要修改才是灾难,而性能却可以更换硬件来提升
[解决办法]这个主要看个人需要
[解决办法][解决办法]本人只会对这条解释,DB2我是不清楚,Oracle中有分区索引,DB2也因该有吧!分区表是为了提高查询效率,那分区索引就是为了提高分区内部的查询效率。分区表有几种,有范围分区,散列分区和位图分区。如果采用散列分区,程序是不知道数据在哪个分区的,只有DBA到数据库去查看才知道,这种分区表也就是适合于大数据量但是不知道按什么标准去分区。范围分区和位图分区,程序员都是知道数据在哪个分区表中的。插入到数据库时,数据库Server自己知道怎么放入,只要你清楚他的规则就可以了!
[解决办法][解决办法]一般主键是聚簇索引、唯一索引
但也可以更改成非聚簇的,而另外找一个字段作为聚簇索引字段
每个表只能有一个聚簇索引
如果你插入顺序和聚簇索引顺序不一致的话,容易造成插入性能低下
[解决办法]只能来看看`不能发表意见
[解决办法]