表分区和表存款和储蓄属性,表变量和一时表

--表变量
update invent set goodInfo=null
declare @tmp_goods table(
    gno char(5)
)
insert into @tmp_goods select gno from invent group by gno

declare @gno char(6),@stno char(6),@gname varchar(255),@producer varchar(255)
while exists(select gno from @tmp_goods)
    begin
        set rowcount 1
        select @gno=gno from @tmp_goods
        select @gname=gname,@producer=producer from goods where gno=@gno;
        set rowcount 0
        update invent set goodInfo=@gname+'-'+@producer where gno=@gno

        delete from @tmp_goods where gno=@gno
    end

select * from invent

 

这一章节里继续研商表的剧情,终归前面再高深的始末都是手无寸铁在管理表数据的功底之上的。

  • ###### 表变量:

 

些微特征是不带属性的(如上边包车型地铁电话号码、过期日期、交货完结标记)——称轻便特征,那种特征是不带主数据的,即未有品质P表(但仍旧有S表,用来存款和储蓄SID的底表,加快查询速度);有个别是带文本的(如上面包车型大巴性别标记有文件),会有照顾的T表文本表;再如下边包车型地铁Product即带属性、又带文本、还带档期的顺序关系,只借使带属性的风味,在底层就会有一张P表与之对应(文本、档次也是有照看的底表的):

表继承

表承接其实是属于表创设连锁的剧情,不过固然这个内容都放在表创制那部分,就体现略微太长了,看的异常慢,就在此地单独来讲话。表继承,从字面意思上来看,便是从此外地点三番五次部分东西过来,实际使用上也是如此,表承接正是以任何表为模板来生成新的表。基本命令格式如下:
create table table_child (like table_father);
大家来看一个示范:

postgres=# \d testdb1; 
                        Table "public.testdb1"
  Column   |         Type          |             Modifiers             
-----------+-----------------------+-----------------------------------
 id        | integer               | not null
 comments  | character varying(20) | default 'test'::character varying
 parent_id | integer               | 
Indexes:
    "testdb1_pkey" PRIMARY KEY, btree (id)

postgres=# select * from testdb1; 
 id | comments | parent_id 
----+----------+-----------
  1 | my test  |         5
(1 row)

地点是一张表的布局以及表中的数量,大家以那张表为模板生成一张新表testdb贰:

postgres=# create table testdb2 (like testdb1); 
CREATE TABLE
postgres=# \d testdb2; 
            Table "public.testdb2"
  Column   |         Type          | Modifiers 
-----------+-----------------------+-----------
 id        | integer               | not null
 comments  | character varying(20) | 
 parent_id | integer               | 

postgres=# select * from testdb2; 
 id | comments | parent_id 
----+----------+-----------
(0 rows)

从地点的代码中大家能够观看,生成的表testdb二和testdb一的布局1模同样,不过暗中同意意况下未有继续表testdb第11中学的数据以及comments字段的默许值。通过询问官方网站文书档案开掘,若是想接二连三原表的各样质量以及数额,要求用到including和with关键字,用法分别是:

  • including defaults 承接暗许值
  • including constraint 承袭约束
  • including indexes 承接索引
  • including storage 继承存款和储蓄
  • including comments 承接注释
  • including all 承继原表的具备属性
  • create table table_child as select * from table_father [with no
    data];

大家来尝试一下,分别来生成一个继承暗许值和多个持续原表全部属性的新表。

postgres=# create table testdb3 (like testdb1 including defaults); 
CREATE TABLE
postgres=# \d testdb3 
                        Table "public.testdb3"
  Column   |         Type          |             Modifiers             
-----------+-----------------------+-----------------------------------
 id        | integer               | not null
 comments  | character varying(20) | default 'test'::character varying
 parent_id | integer               | 

postgres=# select * from testdb3; 
 id | comments | parent_id 
----+----------+-----------
(0 rows)

从地点能够看到承袭了暗许值,未有承袭表中多少以及主键索引

postgres=# create table testdb4 (like testdb1 including all); 
CREATE TABLE
postgres=# \d testdb4;
                        Table "public.testdb4"
  Column   |         Type          |             Modifiers             
-----------+-----------------------+-----------------------------------
 id        | integer               | not null
 comments  | character varying(20) | default 'test'::character varying
 parent_id | integer               | 
Indexes:
    "testdb4_pkey" PRIMARY KEY, btree (id)

postgres=# select * from testdb4;
 id | comments | parent_id 
----+----------+-----------
(0 rows)

从地点能够阅览,including
all关键字会继承全体属性,不过不会持续原表的数目。

postgres=# create table testdb5 as select * from testdb1;
SELECT 1
postgres=# \d testdb5; 
            Table "public.testdb5"
  Column   |         Type          | Modifiers 
-----------+-----------------------+-----------
 id        | integer               | 
 comments  | character varying(20) | 
 parent_id | integer               | 

postgres=# select * from testdb5; 
 id | comments | parent_id 
----+----------+-----------
  1 | my test  |         5
(1 row)

以此示例使用as关键字创制新表testdb伍,不带with子句。从中能够看到私下认可情况下,as语句会将本来表里的多少复制到新表中,然而不会复制原来表中的习性,举个例子各个索引、约束等。那能否因而把那三种命令情势组成起来,既能够持续原表结构,又有啥不可复制原表数据吧?近年来大概未有那种命令的,只可以通过总体的复制数据,再加多索引、约束等,或然先复制完整的表结构,再导入数据。

DECLARE @tb table(id int identity(1,1), name varchar(100))
INSERT @tb
SELECT id, name FROM mytable WHERE name like ‘zhang%’

--临时表  放在dbtemp数据库中
if OBJECT_ID('tempdb.dbo.#tmp_inv','U') is not null
drop table #tmp_invent

方法1:
create table #tmp_inv(id int)
--方法2
select * into #tmp_inv from invent

997755.com澳门葡京 1

临时表

PostgreSQL支持二种等级次序的目前表,分别是会话品级一时表和专门的职业品级暂且表。同时,表中的多寡也分为多个等级,多个是会话等级,三个是职业等级。因此就存在二种格局的临时表。分别是:

  • 会话等级表、会话品级数据
  • 会话品级表、事务品级数据
  • 业务品级表、事务品级数据

第二种表和数量在对话周期都留存,会话销毁,表和数目销毁。第叁种表在对话周期存在,数据在作业周期存在,事务周期截至数据销毁,会话停止表销毁。第三种表和数据在事情截止之后都会销毁。

临时表的创始
一时表的创制和普通表的创建唯1的分别正是在开创语句中加了多个temporary关键字(也得以简写为temp),基本命令格式如下:
create temporary table table_name (field1 type1, field2 type...);
也足以采用大家地点表承继的语法来创制一时表:
create temp table table_name(like table1);

create temp table table_name as select * from table1;
旧事前边说的,权且表是分成三类别型的,而利用地点的言语,私下认可景况下开创的是会话级其他表和数据。而借使想创制别的品级的表,则要求利用上面多少个子句:

  • on commit perserve rows
    那几个子句和暗中认可景况一样,成立会话等第的表和数据,插入的数目保存到。
  • on commit delete rows
    那些子句用来成立会话等级表和事务等级数据,事务销毁后表中数据销毁。
  • on commit drop
    那几个子句只可以用在作业中创建一时表,在对话中开创只会来得表格创设的提示音信,但是看不到表格,因为表格一成立成功就立即销毁了。

因而上边几个示范来看一下:

postgres=# create temp table temp_1 as select * from testdb1; 
SELECT 1
postgres=# \d 
           List of relations
  Schema   |  Name   | Type  |  Owner   
-----------+---------+-------+----------
 pg_temp_2 | temp_1  | table | postgres
 public    | testdb1 | table | postgres
 public    | testdb2 | table | postgres
(3 rows)
postgres=# create temp table temp_2 as select id, parent_id from testdb1; 
SELECT 1
postgres=# \d temp_2;
    Table "pg_temp_2.temp_2"
  Column   |  Type   | Modifiers 
-----------+---------+-----------
 id        | integer | 
 parent_id | integer | 

postgres=# create temp table temp_3 (like testdb1); 
CREATE TABLE
postgres=# \d temp_3; 
           Table "pg_temp_2.temp_3"
  Column   |         Type          | Modifiers 
-----------+-----------------------+-----------
 id        | integer               | not null
 comments  | character varying(20) | 
 parent_id | integer               |

postgres=# \d
           List of relations
  Schema   |  Name   | Type  |  Owner   
-----------+---------+-------+----------
 pg_temp_2 | temp_1  | table | postgres
 pg_temp_2 | temp_2  | table | postgres
 pg_temp_2 | temp_3  | table | postgres
 public    | testdb1 | table | postgres
 public    | testdb2 | table | postgres
(5 rows)

从下面能够见见,3张一时半刻表都以处于1个尤其的形式下,格局名称是pg_temp_表分区和表存款和储蓄属性,表变量和一时表。2。而在postgresql中,每一种会话中开创的临时表都以居于卓殊的格局下,情势名称一般都以pg_temp_x,x是依附差别的对话来分配的数字。大家来尝试创设一下别的品级的表:

  1. 创设会话品级目前表和工作品级数据。

postgres=# create temp table temp_4 (like temp_1 including all) on commit delete rows; 
CREATE TABLE

postgres=# select * from temp_4; 
 id | comments | parent_id 
----+----------+-----------
(0 rows)

postgres=# insert into temp_4 values(1, 'test4', 4); 
INSERT 0 1
postgres=# select * from temp_4; 
 id | comments | parent_id 
----+----------+-----------
(0 rows)

postgres=# begin;
BEGIN
postgres=# insert into temp_4 values(1, 'test4', 4);
INSERT 0 1
postgres=# select * from temp_4; 
 id | comments | parent_id 
----+----------+-----------
  1 | test4    |         4
(1 row)

postgres=# end; 
COMMIT
postgres=# select * from temp_4; 
 id | comments | parent_id 
----+----------+-----------
(0 rows)

上边的言传身教中,大家操作依次是:
(一) 创造目前表temp_4,表是会话等级,数据是事情品级
(2)查看temp_4表,未有其它数据
(三)插入一条数据,再看表,照旧尚未数据
(肆)begin运维2个政工,往表中插入数据,查看表,发掘有一条数据
(伍)end甘休工作,再查看表,表中多少没有。
示范清楚地解释了那种目前表的表征

  1. 事务目前表和业务数据

postgres=# create temp table temp_5 (like temp_1 including all) on commit drop; 
CREATE TABLE
postgres=# \d 
           List of relations
  Schema   |  Name   | Type  |  Owner   
-----------+---------+-------+----------
 pg_temp_2 | temp_1  | table | postgres
 pg_temp_2 | temp_2  | table | postgres
 pg_temp_2 | temp_3  | table | postgres
 pg_temp_2 | temp_4  | table | postgres
 public    | testdb1 | table | postgres
 public    | testdb2 | table | postgres
(6 rows)

上边代码中大家创制了二个作业等第表,提醒创立成功,不过看不到这么些一时表。说明事情品级表在对话中无奈存在,也许说创设之后就销毁。大家在业务中再来看:

postgres=# begin; 
BEGIN
postgres=# create temp table temp_5 (like temp_1 including all) on commit drop; 
CREATE TABLE
postgres=# \d 
           List of relations
  Schema   |  Name   | Type  |  Owner   
-----------+---------+-------+----------
 pg_temp_2 | temp_1  | table | postgres
 pg_temp_2 | temp_2  | table | postgres
 pg_temp_2 | temp_3  | table | postgres
 pg_temp_2 | temp_4  | table | postgres
 pg_temp_2 | temp_5  | table | postgres
 public    | testdb1 | table | postgres
 public    | testdb2 | table | postgres
(7 rows)

postgres=# select * from temp_5; 
 id | comments | parent_id 
----+----------+-----------
(0 rows)

postgres=# insert into temp_5 values(1, 'test5', 5); 
INSERT 0 1
postgres=# select * from temp_5; 
 id | comments | parent_id 
----+----------+-----------
  1 | test5    |         5
(1 row)

postgres=# end; 
COMMIT
postgres=# \d
           List of relations
  Schema   |  Name   | Type  |  Owner   
-----------+---------+-------+----------
 pg_temp_2 | temp_1  | table | postgres
 pg_temp_2 | temp_2  | table | postgres
 pg_temp_2 | temp_3  | table | postgres
 pg_temp_2 | temp_4  | table | postgres
 public    | testdb1 | table | postgres
 public    | testdb2 | table | postgres
(6 rows)

上面的代码是1个完完全全的事体,代码成效依次是:
(壹)在作业中先成立权且表temp_5,查看表,确实存在。
(二)查看表中绝非其他数据,往表中插入一条数据,再看表,有一条数据
(叁)退出职业,再看表新闻,temp_5以此一时半刻表已经断线风筝了。
深信通过那多少个例子,大家对一时表的本性已经具有精通了。

  • ###### 临时表:

    SELECT name, address
    INTO #ta FROM mytable
    WHERE name like ‘zhang%’
    (if exists (select * from tempdb.dbo.sysobjects where id =
    object_id(N’tempdb..#ta’) and type=’U’)drop table #ta)

  • ###### 比较:

 

带属性、文本、档次的表征:

表分区

表分区是通过某种标上校2个大表划分成若干个小表,然后创制触发器,在插入数据的时候,触发器依照钦点的正经,将数据插入到分裂的小表中去。能够增进质量,以及查询速度。规范能够是日期、时间、地区等等。
表分区的落成依赖于表承继,那里的表承继和地点所说的表承袭略有分别,上边的表承接是透过复制父表的布局生成子表,而那边的表承继,指的是全然传承父表的表结构,同时还足以拉长自身的字段来生成一张新的子表。如下所示:

postgres=# create table father(name text, age int); 
CREATE TABLE
postgres=# create table child(language text) inherits (father); 
CREATE TABLE
postgres=# \d father;
    Table "public.father"
 Column |  Type   | Modifiers 
--------+---------+-----------
 name   | text    | 
 age    | integer | 
Number of child tables: 1 (Use \d+ to list them.)

postgres=# \d child; 
      Table "public.child"
  Column  |  Type   | Modifiers 
----------+---------+-----------
 name     | text    | 
 age      | integer | 
 language | text    | 
Inherits: father

在上面包车型地铁演示种,子表child承继父表father,同时增添了投机字段language。

与此同时那种表承袭还保有分化的性状,那体系型的表继承中,查询父表,能够查询到持有子表中对应字段的始末。大家因此多少个例子来看一下那种表承继的个性:

postgres=# select * from father; 
 name | age 
------+-----
(0 rows)

postgres=# slect * from child 
postgres-# ; 
ERROR:  syntax error at or near "slect"
LINE 1: slect * from child 
        ^
postgres=# select * from child; 
 name | age | language 
------+-----+----------
(0 rows)

postgres=# insert into child values('张三', 16, '中文'); 
INSERT 0 1
postgres=# insert into child values('tom', 19, 'English');
INSERT 0 1
postgres=# select * from father; 
 name | age 
------+-----
 张三 |  16
 tom  |  19
(2 rows)

postgres=# select * from child; 
 name | age | language 
------+-----+----------
 张三 |  16 | 中文
 tom  |  19 | English
(2 rows)

从地点的例证中得以观察,往子表中插入的数目,在父表中能够看出相应字段的数码。再看上边那些事例:

postgres=# insert into father values('李四', 25);
INSERT 0 1
postgres=# select * from father; 
 name | age 
------+-----
 李四 |  25
 张三 |  16
 tom  |  19
(3 rows)

postgres=# select * from child; 
 name | age | language 
------+-----+----------
 张三 |  16 | 中文
 tom  |  19 | English
(2 rows)

可以见见,往父表中插入的数量,在子表中却看不到。

而这连串型的表承接的特征恰恰是表分区完结的根基,能够通过查询主表来查询主表下全体分区表的内容。往分区表里插入数据,也就是是往主表中插入数据。在那里,主表约等于是子表,分区表也便是是父表。同时,还要通过触发器来兑现往主表里插入数据或询问数据时,自动转到对应的分区表上。因而还要明白触发器的始建规则。由此那部分剧情在学完触发器的学问后再来看。

一.表变量存在内部存款和储蓄器,一时表在硬盘,表不是专门大的时候放在内部存款和储蓄器速度快。
二.提议:触发器、自定义函数用表变量;存款和储蓄进程看境况,大多数用表变量;特殊的利用,大数据量的场子用临时表。
三.表变量不必删除,也就不会有命名争论,目前表尤其是大局一时半刻表用的时候必须化解命名争辩.
四.借使选拔到了目前表,在储存进程的最终务必将有着的权且表显式删除,先truncate
table,然后drop table,那样可防止止系统表的较长时间锁定。
5.表变量的弱项:
—表变量上不能够创制非集中索引(为 P猎豹CS6IMAOdysseyY 或 UNIQUE
约束创立的系统索引除此而外)
—在始发 DECLARE 语句后不可能退换表定义
—表变量不可能在 INSERT EXEC 或 SELECT INTO 语句中利用
—表变量不帮助truncate,所以完全清空对象结果集时目前表有醒目优势,而表变量只可以delete

997755.com澳门葡京 2

表的存款和储蓄属性

表的蕴藏属性指的是
TOAST用于存款和储蓄大字段的手艺,在领略那些技巧以前,先通晓一下页的定义。页在PostgreSQL中是数码在文件存储中的单位,其大小是原则性的且不得不在编写翻译时钦定,之后不可能修改,暗中认可的大大小小为8KB 。同时,PG 不允许一行数据跨页存款和储蓄,那么对于超长的行数据,PG 就会运转TOAST
,具体正是应用压缩和切条的法子。假若启用了切成条,实际上行数据存款和储蓄在另一张系统表的三个行中,那张表就叫
TOAST 表,那种存款和储蓄情势叫行外部存款和储蓄器储。
而相似情状下,只有变长类型才会支撑TOAST技能,在变长类型中,前多少个字节是长度字。长度字的前三位是标记位,后三十个人是长度值。长度值包罗笔者占用的五个字节,由此,TOAST数据类型的长短最大应该是30b,及壹GB(贰^30-一)个字节。
前4位标识位,第三个代表是还是不是压缩,第3个象征是不是是行外部存款和储蓄器储。多个都以0意味着不降价扣,不是行外部存款和储蓄器储。第贰个为一意味压缩过,使用在此之前必须解压。第贰个为1表示行外部存储器储,此时,长度字背后存款和储蓄的只是1个指针。不管多少是不是压缩,长度位后30bit都表示的是多少的实事求是大小,而不会是减掉今后的大大小小。
即使一张表A有照管的toast表,那么在系统表pg_class里面就会有多个表名A对应五个toast表的OID,然后依据这些oid就能找到相应的toast表pg_toast_oid。倘诺么某些大字段的数目存放在toast表中,那么那些字段的数码就会被切除成页面大小百分之二10伍高低的块。然后将这一个数量块存放在toast表中。每一种toast表有chunk_id、chunk_seq和chunk_data字段,数据块就坐落chunk_data字段中。在chunk_id和chunk_seq上有多少个唯一的目录,用于对数据的全速搜索。因而在日前变长类型的字段的长度位中,要是存款和储蓄的是指针的话,那么该指针就隐含toast表的OID和特定数值的chunk_id,以及数据的莫过于尺寸。

在 PG 中各类表字段有多种 TOAST 的国策:

  • PLAIN :制止压缩和行外部存款和储蓄器储。唯有那个不须要 TOAST
    战术就能存放的数据类型允许选拔(比方 int 类型),而对于 text
    那类要求存款和储蓄长度超越页大小的种类,是不容许行使此政策的。
  • EXTENDED
    :允许优惠扣和行外部存款和储蓄器储。一般会先削减,假设依旧太大,就会行外部存款和储蓄器储
  • EXTE普拉多NA
    :允许行外部存储器储,但未能压缩。类似字符串这种会对数码的1局地开始展览操作的字段,选取此政策大概获取更加高的性质,因为不需求读抽出整行数据再解压。
  • MAIN
    :允许减价扣,但不可能行外存款和储蓄。可是事实上,为了确定保证过大数目的蕴藏,行外部存款和储蓄器储在其余方法(比方压缩)都没办法儿知足须求的情形下,作为最终花招依然会被运营。由此精晓为:尽量不选用行外部存款和储蓄器储更适用。

在PG中,会为各个允许TOAST的字段设置三个暗许的安排。但是足以采取ALTER TABLE SET STORAGE命令来修改系统装置的暗中同意战略。

暗许境况下,唯有当贰个字段数据的轻重缓急抢先页大小的百分之二十五的时候,才会触发压缩战术。即对于八k页大小的数据库来说,字段数据大小超越二k时才会触发压缩计谋。在那种境况下,如若两张结构同样的表A和B,A中某些字段存款和储蓄的数额低于二k,而B中该字段的多少超越二k,会产出B表所据有的空中反而小于A表。

从地点这个故事情节来看,所谓的蕴蓄属性,应该指的就是指向字段设置的各类攻略。其余,还足以本着表设置fillfactor和toast.fillfactor这四个值。那四个值表示表的填充因子和toast表的填充因子,填充因子表示的是三个数据块的填写比例,即八个数据库填充到多少未来就不填充数据了,剩下的空中留做多少更新时使用。
在PG中,更新旧数据时,不会删除旧数据,而是在保存的空间里写入一条新数据,然后在旧数据和新数据里面创建二个链表,那样就绝不更新索引,索引找到旧数据时,会基于链表找到新数据。可是只要填充因子设置的过大,更新旧数据时,保留的空间不足以存放更新的数目,且数额不可能跨页存放,由此必须放在新的数据块,此时旧须要更新索引。会更耗费时间,由此,对于数据更新往往的表,那一个值能够安装的小一些。

增补:多个事情的差不多意思:

begin Transaction 能够领会成新建三个还原点。
commit Transaction 提交这些自begin tran开首的修改
rollback Transaction 表示恢复生机到上个还原点。
–set xact_abort on 全体回滚全部语句
–set xact_abort off 只回滚出错语句

begin tran
update,,,,,
commit tran

set xact_abort on 和 rollback Transaction 结果1致,都以回滚全数。
貌似把DML语句(select ,delete,update,insert语句)放在BEGIN TRAN…COMMIT
TRAN
之间作为贰个事务处理,相当于这个话语实行进度中借使遇到错误,无论哪句遭遇错误,全数语句都会回滚到BEGIN
TRAN在此之前的景观。

参考:http://blog.csdn.net/gordennizaicunzai/article/details/50760950

光阴相关的层系:

997755.com澳门葡京 3

假诺有些特征带档案的次序结构,特征的“Attribute
Only”不可能勾上

 

SID表:只要是特色,不管该特征是或不是是勾上了“仅属性Attribute
Only”选项,也不论该特征是不是带属性、文本、档次,特征都会有多少个SID表,该表中特征本人是主键,而SID字段为整型类型字段,那样设计的目标是加块查询的率效(因为相似通过整型类型的字段举办关联与查询速度要快,Fact表里积累的正是SID,不是特点本身的值),所以SAP在安插特点时都会变卦2个SID表:

997755.com澳门葡京 4 997755.com澳门葡京 5

997755.com澳门葡京 6

 

M表:实质上不是表,而是视图,它的字段来自P表或Q表、恐怕是P表+Q表中的字段,存款和储蓄了特点的
Attribute 页签中的享有附加属性。

当全数属性都以光阴无关的习性时,就只有P表,未有Q表(有无P表、Q表,与是还是不是导航非亲非故,只与时间关于),此时M表的保有字段只来自于P表:

997755.com澳门葡京 7 997755.com澳门葡京 8

997755.com澳门葡京 9 997755.com澳门葡京 10

  • 当全数属性都以岁月相关的属性时,就惟有Q表,未有P表(有无P表、Q表,与是或不是导航无关,只与时光关于),此时M表的全部字段只来自于Q表:

997755.com澳门葡京 11 997755.com澳门葡京 12

997755.com澳门葡京 13 997755.com澳门葡京 14

 

  • 当有壹部分属性是时间相关的,另1局地又是与时光非亲非故的属性时,就会有P表,也有Q表(有无P表、Q表,与是还是不是导航非亲非故,只与时光关于),此时M表的是由
    P表与Q表Join而来:

997755.com澳门葡京 15 997755.com澳门葡京 16

997755.com澳门葡京 17

997755.com澳门葡京 18

 

  • 当特征的Master data/texts 页签中的 With
    master
    data勾去掉,且尚未增大属性时(加了品质后,激活时With
    master data会自行勾上),M表就不会设有,但一旦 With master
    data勾上,就会有M表:

997755.com澳门葡京 19

  • 若果With
    master
    data勾上,纵然未有增大属性,都会生成M、P表:

997755.com澳门葡京 20 997755.com澳门葡京 21

 

 

P表:只要有时间无关的习性,就会生成P表,且此时光阴毫不相关的属性都会产生该表的组合字段

X表:只要有时光非亲非故的领航属性,就会生成X表,X表实质上便是SID,如同特征本人有一个SID表同样,因为为了导航行速度度快,所以必要为导航属性生成对应的SID

Q表:只要有时光相关的性子,就会生成Q表,且此时时间相关的属性都会产生该表的重组字段

Y表:只要有时间相关的领航属性,就会生成Y表,与X表同样,Y表实质上也是SID,也是为着导航行速度度快而变化的

997755.com澳门葡京 22 
997755.com澳门葡京 23

997755.com澳门葡京 24 997755.com澳门葡京 25

997755.com澳门葡京 26997755.com澳门葡京 , 997755.com澳门葡京 27

T表:文本表

997755.com澳门葡京 28 997755.com澳门葡京 29

相关文章

发表评论

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

*
*
Website