华为云用户手册
-
pooler_connect_timeout 参数说明:CN连接池与集群中其他CN/DN建立连接时的超时时间。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 7200 默认值:60(即1min) 设置方式:该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。例如,设置为100,不带单位,表示100s;设置为20min,带单位,表示20min。取值如果要带单位,必须为s、min、h、d。 设置建议:推荐使用默认值。 设置不当的风险与影响:设置过小,当网络波动时,会导致建立连接报错;设置过大,当网络不通时,会导致建立连接报错的时间变长,降低高可用能力。
-
max_datanodes 参数说明:集群中DN的最大数目,当集群规模有变化,如增加节点、减少节点时,可能需要调整该参数。扩容时,请确保此参数值大于需要扩容到的集群中DN总分片数,否则会导致扩容失败。缩容时,若此参数值偏大,CN启动时会消耗更多的内存资源,但总体来说对CN内存影响不大。 参数类型:整型 参数单位:无 取值范围:2 ~ 65535 默认值:256 设置方式:该参数属于POSTMASTER类型参数,不建议修改此参数,若需修改,请参考表2中对应设置方法进行设置。 设置建议:按照集群的实际规格进行设置。 设置不当的风险与影响:该参数小于集群当前DN个数时,会导致节点创建失败。由于CN启动时,会根据参数值提前申请内存,所以当该参数值变大,系统会消耗更多内存资源,但总体来说对CN内存影响不大。
-
cache_connection 参数说明:是否回收连接池的连接。 参数类型:布尔型 参数单位:无 取值范围: on:表示回收连接池的连接。 off:表示不回收连接池的连接。 默认值:on 设置方式:该参数属于SIGHUP类型参数,请参考表2中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:关闭该参数后,会话执行语句结束后会直接清理掉持有的连接,导致业务频繁建立连接,对性能有一定损耗。开启该参数后,在多库场景下,当内存规格较小并且连接数max_connections配置较大时,可能会导致内存不足,DN无法启动。
-
pooler_port 参数说明:cm_agent、cm_ctl等内部工具运维管理端口,初始化用户或系统管理员通过客户端连接数据库所使用端口。 参数类型:整型 参数单位:无 取值范围:1 ~ 65535。 默认值:不依赖OM组件安装且未指定该GUC参数,默认值是6667。依赖OM组件安装时,若指定port值,该参数值为port+1;若未指定port值,CN实例该参数默认值为8001,DN实例该参数默认值为40001。 设置方式:该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。 设置建议:一般为集群安装配置设置的值,不建议修改。 设置不当的风险与影响:修改此参数,很可能导致端口号冲突或被拦截,导致数据库通信失败。
-
pooler_maximum_idle_time 参数说明:Pooler连接自动清理功能使用,当连接池中连接空闲时间超过所设置值时,会触发自动清理机制,清理各节点的空闲连接数到minimum_pool_size。 参数类型:整型 参数单位:s(秒) 取值范围:0 ~ 2147483647 默认值:600(即10min) 设置方式:该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。例如,设置为100,不带单位,表示100s;设置为20min,带单位,表示20min。取值如果要带单位,必须为s、min、h、d。 设置建议:推荐使用默认值。 设置不当的风险与影响:配置过大,会降低pooler连接池中空闲连接的清理频率,降低回收速率;配置过小,会提高清理频率,导致业务频繁建立连接,对性能有一定损耗。
-
persistent_datanode_connections 参数说明:会话是否会释放获得的连接。 参数类型:布尔型 参数单位:无 取值范围: on:表示不会释放获得的连接。 off:表示会释放获得的连接。 默认值:off 设置方式:该参数属于BACKEND类型参数,请参考表2中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:开启该参数后,会存在会话持有连接但并未运行查询的情况,导致其他查询申请不到连接报错。
-
max_coordinators 参数说明:集群中CN的最大数目,当集群规模有变化,如增加节点、减少节点时,可能需要调整该参数。扩容时,请确保此参数值大于需要扩容到的集群中CN的个数,否则会导致扩容失败。缩容时,若此参数值偏大,CN启动时会消耗更多的内存资源,但总体来说对CN内存影响不大。 参数类型:整型 参数单位:无 取值范围:2 ~ 1024 默认值:128 设置方式:该参数属于POSTMASTER类型参数,不建议修改此参数,若需修改,请参考表2中对应设置方法进行设置。 设置建议:按照集群的实际规格进行设置。 设置不当的风险与影响:该参数小于集群当前CN个数时,会导致节点创建失败。由于CN启动时,会根据参数值提前申请内存,所以当该参数值变大,系统会消耗更多内存资源,但总体来说对CN内存影响不大。
-
minimum_pool_size 参数说明:Pooler连接自动清理功能使用,表示自动清理后各pooler连接池对应节点的连接数最小剩余量。 参数类型:整型 参数单位:无 取值范围:1 ~ 65535 默认值:50 设置方式:该参数属于USERSET类型参数,请参考表2中对应设置方法进行设置。 设置建议:推荐使用默认值。 设置不当的风险与影响:配置过大,会减少pooler连接池中空闲连接的清理数量,降低回收速率;配置过小,会增大清理数量,导致业务频繁建立连接,对性能有一定损耗。
-
max_pool_size 参数说明:CN的连接池与其它某个CN/DN的最大连接数,当集群规模有变化,如增加节点、减少节点时,可能需要调整该参数。 参数类型:整型 参数单位:无 取值范围:1 ~ 65535 默认值: 独立部署: 32768(60核CPU/480G内存);16384(32核CPU/256G内存);8192(16核CPU/128G内存);4096(8核CPU/64G内存);2048(4核CPU/32G内存);1000(4核CPU/16G内存) 设置方式:该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。 设置建议:按照不同实例规格下的默认值进行设置,该参数值需要大于max_connections,调整时需预留内部线程所消耗的连接。 设置不当的风险与影响:当业务并发高时,会消耗连接池中CN至其他CN/DN的连接,如果该参数配置过小,连接数达到上限时会产生报错,导致业务失败。由于CN启动时,会根据参数值提前申请内存,所以当该参数值变大,系统会消耗更多内存资源,但总体来说对CN内存影响不大。
-
示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 gaussdb=# DROP TABLE t1; gaussdb=# CREATE TABLE t1(a int); gaussdb=# INSERT INTO t1 VALUES(1),(10); --RETURN NEXT gaussdb=# CREATE OR REPLACE FUNCTION fun_for_return_next() RETURNS SETOF t1 AS $$ DECLARE r t1%ROWTYPE; BEGIN FOR r IN select * from t1 LOOP RETURN NEXT r; END LOOP; RETURN; END; $$ LANGUAGE plpgsql; gaussdb=# call fun_for_return_next(); a --- 1 10 (2 rows) -- RETURN QUERY gaussdb=# CREATE OR REPLACE FUNCTION fun_for_return_query() RETURNS SETOF t1 AS $$ DECLARE r t1%ROWTYPE; BEGIN RETURN QUERY select * from t1; END; $$ language plpgsql; gaussdb=# call fun_for_return_query(); a --- 1 10 (2 rows)
-
语法 创建函数时需要指定返回值SETOF datatype。 return_next_clause::= return_next_clause::=语句如图1所示。 图1 return_next_clause::= return_query_clause::= return_query_clause::=语句如图2所示。 图2 return_query_clause::= 当需要函数返回一个集合时,使用RETURN NEXT或者RETURN QUERY向结果集追加结果,然后继续执行函数的下一条语句。随着后续的RETURN NEXT或RETURN QUERY命令的执行,结果集中会有多个结果。函数执行完成后会一起返回所有结果。 RETURN NEXT可用于标量和复合数据类型。 RETURN QUERY有一种变体RETURN QUERY EXECUTE,后面还可以增加动态查询,通过USING向查询插入参数。
-
SQL调优指南 SQL调优的唯一目的是“资源利用最大化”,即CPU、内存、磁盘I/O、网络IO四种资源利用最大化。所有调优手段都是围绕资源使用开展的。所谓资源利用最大化是指SQL语句尽量高效,节省资源开销,以最小的代价实现最大的效益。比如做典型点查询的时候,可以用seqscan+filter(即读取每一条元组和点查询条件进行匹配)实现,也可以通过indexscan实现,显然indexscan可以以更小的代价实现相同的效果。 根据硬件资源和客户的业务特征确定合理的集群部署方案和表定义是数据库在多数情况下满足性能要求的基础。下文的调优说明假设您已根据“软件安装”指引在安装过程中按照合理的集群方案完成了安装,且已经根据“开发设计建议”的指引进行了数据库设计。 Query执行流程 SQL执行计划介绍 调优流程 更新统计信息 审视和修改表定义 审视计划跳变场景 典型SQL调优点 经验总结:SQL语句改写规则 SQL调优关键参数调整 使用Plan Hint进行调优 检查隐式转换的性能问题 使用向量化执行引擎进行调优 使用SQL PATCH进行调优 实际调优案例
-
接口介绍 高级功能包DBE_XMLDOM用于访问XMLType对象,实现DOM(Document Object Model),用于访问HTML和XML DOCUMENTS API。高级功能包DBE_XMLDOM支持的所有类型请参见表1,DBE_XMLDOM支持的所有接口请参见表2。 DBE_XMLDOM高级包在字符集设置为SQL_ASCII的数据库内使用的情况下,输入超出ASCII范围的字符,会导致报错。 表1 DBE_XMLDOM数据类型说明 类型名称 描述 DOMATTR 实现DOM Attribute接口。 DOMDOCUMENT 实现DOM Document接口。 DOMELEMENT 实现DOM Element接口。 DOMNAMEDNODEMAP 实现DOM Named Node Map接口。 DOMNODELIST 实现DOM Node List接口。 DOMNODE 实现DOM Node接口。 DOMTEXT 实现DOM Text接口。 表2 DBE_XMLDOM接口参数说明 接口名称 描述 DBE_XMLDOM.APPENDCHILD 将newchild node添加到parent(n)节点最后面,并返回新添加的Node节点。 DBE_XMLDOM.CREATEELEMENT 创建指定名称的DOMELEMENT对象。 DBE_XMLDOM.CREATETEXTNODE 创建DOMTEXT节点。 DBE_XMLDOM.FREEDOCUMENT 释放DOMDOCUMENT节点相关资源。 DBE_XMLDOM.FREEELEMENT 释放DOMELEMENT节点相关资源。 DBE_XMLDOM.FREENODE 释放DOMNODE节点相关资源。 DBE_XMLDOM.FREENODELIST 释放DOMNODELIST节点相关资源。 DBE_XMLDOM.GETATTRIBUTE 按名称返回DOMELEMENT属性的值。 DBE_XMLDOM.GETATTRIBUTES 将DOMNODE节点属性值作为map返回。 DBE_XMLDOM.GETCHILDNODES 将节点下的若干子节点转换成节点列表。 DBE_XMLDOM.GETCHILDRENBYTAGNAME 按名称返回DOMELEMENT的子节点。 DBE_XMLDOM.GETDOCUMENTELEMENT 返回指定DOCUMENT的首个子节点。 DBE_XMLDOM.GETFIRSTCHILD 返回第一个子节点。 DBE_XMLDOM.GETLASTCHILD 返回最后一个子节点。 DBE_XMLDOM.GETLENGTH 获取给定节点中的节点个数。 DBE_XMLDOM.GETLOCALNAME 检索节点的本地名称。 DBE_XMLDOM.GETNAMEDITEM 检索由名称指定的节点。 DBE_XMLDOM.GETNEXTSIBLING 返回该节点的下一个节点。 DBE_XMLDOM.GETNODENAME 返回节点名称。 DBE_XMLDOM.GETNODETYPE 返回节点类型。 DBE_XMLDOM.GETNODEVALUE 此函数用于获取节点的值,具体取决于其类型。 DBE_XMLDOM.GETPARENTNODE 检索此节点的父节点。 DBE_XMLDOM.GETTAGNAME 返回指定DOMELEMENT的标签名称。 DBE_XMLDOM.HASCHILDNODES 检查DOMNODE对象是否拥有任一子节点。 DBE_XMLDOM.IMPORTNODE 复制节点并为该节点指定所属文档。 DBE_XMLDOM.ISNULL 检测节点是否为空。 DBE_XMLDOM.ITEM 返回映射中与索引参数对应的项。 DBE_XMLDOM.MAKEELEMENT 将DOMNODE对象转换为DOMELEMENT类型。 DBE_XMLDOM.MAKENODE 将节点强制转换为DOMNODE类型。 DBE_XMLDOM.NEWDOMDOCUMENT 返回新的DOMDOCUMENT对象。 DBE_XMLDOM.SETATTRIBUTE 按名称设置DOMELEMENT属性的值。 DBE_XMLDOM.SETCHARSET 设置DOMDOCUMENT的CHATSET字符集。 DBE_XMLDOM.SETDOCTYPE 设置DOMDOCUMENT的外部DTD。 DBE_XMLDOM.SETNODEVALUE 此函数用于向DOMNODE对象中设置节点的值。 DBE_XMLDOM.WRITETOBUFFER 将 XML 节点写入指定缓冲区。 DBE_XMLDOM.WRITETOCLOB 将 XML 节点写入指定CLOB。 DBE_XMLDOM.WRITETOFILE 将 XML 节点写入指定文件。 DBE_XMLDOM.GETSESSIONTREENUM 显示当前session中所有类型的dom树的数量。 DBE_XMLDOM.GETDOCTREESINFO 显示document类型的dom树的内存占用、节点数量等统计信息。 DBE_XMLDOM.GETDETAILDOCTREEINFO 显示特定的document变量的各类型节点数量。 DBE_XMLDOM.GETELEMENTSB.... 返回匹配TAGNAME的DOMNODELIST节点列表。
-
pl_trace_func_start 开启某节点trace功能的接口函数。字段信息详见表1。 表1 pl_trace_func_start 参数 类型 描述 session_id bigint 需要开启trace功能的会话ID。 node text 需要开启trace功能的节点名称。 max_num integer 本次trace所能记录的最大信息数量(取值范围:100~10000)。 level text 本次trace的等级: session:会话级别,在调用pl_trace_func_end函数或会话关闭前一直开启trace功能。 portal:portal级别,执行一次存储过程后自动关闭trace功能。 time:会话级别,在会话级别上添加语句执行时间显示。 threshold:会话级别,在time级别上只记录大于等于阈值的语句。 threshold float8 本次trace的阈值(单位:毫秒,仅在level为threshold时生效)。 父主题: Trace Function
-
STATEMENT_WLMSTAT_COMPLEX_RUNTIME STATEMENT_WLMSTAT_COMPLEX_RUNTIME视图显示和当前用户执行作业正在运行时的负载管理相关信息,如表1所示。 表1 STATEMENT_WLMSTAT_COMPLEX_RUNTIME字段 名称 类型 描述 datid oid 连接后端的数据库OID。 datname name 连接后端的数据库名称。 threadid bigint 后端线程id。 processid integer 后端线程的pid。 usesysid oid 登录后端的用户OID。 appname text 连接到后端的应用名。 usename name 登录到该后端的用户名。 priority bigint 语句所在Cgroups的优先级。 attribute text 语句的属性: Ordinary:语句发送到数据库后被解析前的默认属性。 Simple:简单语句。 Complicated:复杂语句。 Internal:数据库内部语句。 block_time bigint 语句当前为止的pending的时间,单位s。 elapsed_time bigint 语句当前为止的实际执行时间,单位s。 total_cpu_time bigint 语句在上一时间周期内的DN上CPU使用的总时间,单位s。 cpu_skew_percent integer 语句在上一时间周期内的DN上CPU使用的倾斜率。 statement_mem integer 语句执行使用的statement_mem,预留字段。 active_points integer 语句占用的资源池并发点数。 dop_value integer 语句的从资源池中获取的dop值。 control_group text 语句当前所使用的Cgroups。 status text 语句当前的状态,包括: pending:执行前状态。 running:执行进行状态。 finished:执行正常结束。(当enqueue字段为StoredProc或Transaction时,仅代表语句中的部分作业已经执行完毕,该状态会持续到该语句完全执行完毕。) aborted:执行异常终止。 active:非以上四种状态外的正常状态。 unknown:未知状态。 enqueue text 语句当前的排队情况,包括: Global:在全局队列中排队。 Respool:在资源池队列中排队。 CentralQueue:在中心协调节点(CCN)中排队。 Transaction:语句处于一个事务块中。 StoredProc:语句处于一个存储过程中。 None:未在排队。 Forced None:事务块语句或存储过程语句由于超出设定的等待时间而强制执行。 resource_pool name 语句当前所在的资源池。 query text 该后端的最新查询。如果state状态是active(活的),此字段显示当前正在执行的查询。所有其他情况表示上一个查询。 父主题: Query
-
示例 普通索引 --创建tbl_test1表。 gaussdb=# CREATE TABLE tbl_test1( id int, --用户id name varchar(50), --用户姓名 postcode char(6) --邮编 ); --创建表空间tbs_index1。 gaussdb=# CREATE TABLESPACE tbs_index1 RELATIVE LOCATION 'test_tablespace/tbs_index1'; --为表tbl_test1创建索引idx_test1指定表空间。 gaussdb=# CREATE INDEX idx_test1 ON tbl_test1(name) TABLESPACE tbs_index1; --查询索引idx_test1信息。 gaussdb=# SELECT indexname,tablename,tablespace FROM pg_indexes WHERE indexname = 'idx_test1'; indexname | tablename | tablespace -----------+-----------+------------ idx_test1 | tbl_test1 | tbs_index1 (1 row) --删除索引。 gaussdb=# DROP INDEX idx_test1; --删除表空间。 gaussdb=# DROP TABLESPACE tbs_index1; 唯一索引 --为表tbl_test1创建唯一索引idx_test2。 gaussdb=# CREATE UNIQUE INDEX idx_test2 ON tbl_test1(id); --查询索引信息。 gaussdb=# \d tbl_test1 Table "public.tbl_test1" Column | Type | Modifiers ----------+-----------------------+----------- id | integer | name | character varying(50) | postcode | character(6) | Indexes: "idx_test2" UNIQUE, btree (id) TABLESPACE pg_default --删除索引。 gaussdb=# DROP INDEX idx_test2; 表达式索引 --为表tbl_test1创建一个表达式索引。 gaussdb=# CREATE INDEX idx_test3 ON tbl_test1(substr(postcode,2)); --查询索引信息。 gaussdb=# \d tbl_test1 Table "public.tbl_test1" Column | Type | Modifiers ----------+-----------------------+----------- id | integer | name | character varying(50) | postcode | character(7) | Indexes: "idx_test3" btree (substr(postcode::text, 2)) TABLESPACE pg_default --删除索引。 gaussdb=# DROP INDEX idx_test3; 部分索引 --为表tbl_test1中id不为为空的数据建立索引。 gaussdb=# CREATE INDEX idx_test4 ON tbl_test1(id) WHERE id IS NOT NULL; --删除索引。 gaussdb=# DROP INDEX idx_test4; --删除表。 gaussdb=# DROP TABLE tbl_test1; 分区索引 --建表。 gaussdb=# CREATE TABLE student(id int, name varchar(20)) PARTITION BY RANGE (id) ( PARTITION p1 VALUES LESS THAN (200), PARTITION pmax VALUES LESS THAN (MAXVALUE) ); --创建LOCAL分区索引不指定索引分区的名称。 gaussdb=# CREATE INDEX idx_student1 ON student(id) LOCAL; --查看索引分区信息,LOCAL索引分区数和表的分区数一致。 gaussdb=# SELECT relname FROM pg_partition WHERE parentid = 'idx_student1'::regclass; relname ------------- p1_id_idx pmax_id_idx (2 rows) --删除LOCAL分区索引。 gaussdb=# DROP INDEX idx_student1; --创建GLOBAL索引。 gaussdb=# CREATE INDEX idx_student2 ON student(name) GLOBAL; --查看索引分区信息,GLOBAL索引分区数和表的分区数不一致。 gaussdb=# SELECT relname FROM pg_partition WHERE parentid = 'idx_student2'::regclass; relname --------- (0 rows) --删除GLOBAL分区索引。 gaussdb=# DROP INDEX idx_student2; --创建LOCAL表达式索引,不指定索引分区的名称。 gaussdb=# CREATE INDEX idx_student3 ON student(lower(name)) LOCAL; --查看索引分区信息,LOCAL索引分区数和表的分区数一致。 gaussdb=# SELECT relname FROM pg_partition WHERE parentid = 'idx_student3'::regclass; relname ------------- p1_id_idx pmax_id_idx (2 rows) --删除LOCAL分区表达式索引。 gaussdb=# DROP INDEX idx_student3; --创建GLOBAL表达式索引。 gaussdb=# CREATE INDEX idx_student4 ON student(lower(name)) GLOBAL; --查看索引分区信息,GLOBAL表达式索引分区数和表的分区数不一致。 gaussdb=# SELECT relname FROM pg_partition WHERE parentid = 'idx_student4'::regclass; relname --------- (0 rows) --删除GLOBAL分区表达式索引。 gaussdb=# DROP INDEX idx_student4; --删除表。 gaussdb=# DROP TABLE student;
-
语法格式 在表上创建索引。 1 2 3 4 5 6 7 8 CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ IF NOT EXISTS ] [ [schema_name.] index_name ] ON table_name [ USING method ] ({ { column_name [ ( length ) ] | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] }[, ...] ) [ INCLUDE ( column_name [, ...] ) ] [ WITH ( {storage_parameter = value} [, ... ] ) ] [ TABLESPACE tablespace_name ] { [ COMMENT 'string' ] [ ... ] } [ { VISIBLE | INVISIBLE } ] [ WHERE predicate ]; 在分区表上创建索引。 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [schema_name.] index_name ] ON table_name [ USING method ] ( { { column_name [ ( length ) ] | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS LAST ] } [, ...] ) [ LOCAL [ ( { PARTITION index_partition_name [ FOR { partition_name | ( partition_value [, ...] ) } ] [ TABLESPACE index_partition_tablespace ] [ ( [SUBPARTITION index_subpartition_name] [ FOR { partition_name | ( partition_value [, ...] ) } ] [ TABLESPACE index_partition_tablespace ] [, ...] ) ] [, ...] } ) ] | GLOBAL ] [ INCLUDE ( column_name [, ...] ) ] [ WITH ( { storage_parameter = value } [, ...] ) ] [ TABLESPACE tablespace_name ] { [ COMMENT 'string' ] [ ... ] } [ { VISIBLE | INVISIBLE } ];
-
优化建议 create index 约束限制: 普通表的索引支持最大列数为32列;分区表的GLOBAL索引支持最大列数为31列。 单个索引大小不能超过索引页面大小(8k),其中B-tree、UBtree索引不能超过页面大小的三分之一。 分区表上不支持创建部分索引。 分区表创建GLOBAL索引时,存在以下约束条件: 不支持表达式索引、部分索引。 仅支持Btree索引。 在相同属性列上,分区LOCAL索引与GLOBAL索引不能共存。 如果ALTER语句不带有UPDATE GLOBAL INDEX,那么原有的GLOBAL索引将失效,查询时将使用其他索引进行查询;如果ALTER语句带有UPDATE GLOBAL INDEX,原有的GLOBAL索引仍然有效,并且索引功能正确。
-
注意事项 基表为HASH分布时,若创建不包含基表分布键的主键或唯一索引,需要使用全局二级索引(CREATE GLOBAL INDEX),若创建包含基表分布键的主键或唯一索引,需要使用普通索引(CREATE INDEX),单DN部署形式下,使用全局二级索引或者普通索引均可创建成功;当基表为除HASH分布以外的其他分布形式时,主键或唯一索引只能使用普通索引(CREATE INDEX),即索引键必须包含基表分布键。 索引自身也占用存储空间、消耗计算资源,创建过多的索引将对数据库性能造成负面影响(尤其影响数据导入的性能,建议在数据导入后再建索引)。因此,仅在必要时创建索引。 索引定义里的所有函数和操作符都必须是immutable类型的,即它们的结果必须只能依赖于它们的输入参数,而不受任何外部的影响(如另外一个表的内容或者当前时间)。这个限制可以确保该索引的行为是定义良好的。要在一个索引上或WHERE中使用用户定义函数,请把它标记为immutable类型函数。 分区表索引分为LOCAL索引与GLOBAL索引,LOCAL索引与某个具体分区绑定,而GLOBAL索引则对应整个分区表。 被授予CREATE ANY INDEX权限的用户,可以在public模式和用户模式下创建索引。 禁止其他用户在初始用户的表上创建包含用户自定义函数的表达式索引。 如果基表是HASH/RANGE/LIST分布,则创建唯一索引时必须包含基表的分布键,且不能含有表达式。 如果表达式索引中调用的是用户自定义函数,按照函数创建者权限执行表达式索引函数。 不支持XML类型数据作为普通索引、UNIQUE索引、GLOBAL索引、LOCAL索引、部分索引。 在线创建索引的类型只支持btree索引和ubtree索引。索引创建形式只支持非分区表普通索引及分区表GLOBAL索引、LOCAL索引,不支持PCR ubtree索引、二级分区与GSI。在线并行创建索引只支持Astore及Ustore的普通索引、GLOBAL索引、LOCAL索引。 CREATE INDEX创建索引可能会改变表的访问方式从而导致查询执行计划改变。 当创建索引的SQL语句过长(长度大于等于5250字符)时,会上报一条WARNING,建议缩短创建索引语句的长度。 创建索引的SQL语句过长时,可能会在备份恢复索引时发生失败。由于备份恢复创建索引语句由gs_dump导出,gs_dump在导出索引定义时会对函数名、条件、列名进行添加引号、括号和列的类型的操作,原SQL语句会变得更长,进而导致该语句对应的pg_index元组不能存到一个页面上,造成创建索引失败。
-
功能描述 在指定的表上创建索引。 索引可以用来提高数据库查询性能,但是不恰当的使用将导致数据库性能下降。建议仅在匹配如下某条原则时创建索引: 经常执行查询的字段。 在连接条件上创建索引,对于存在多字段连接的查询,建议在这些字段上建立组合索引。例如:select * from t1 join t2 on t1.a=t2.a and t1.b=t2.b,可以在t1表上的a,b字段上建立组合索引。 where子句的过滤条件字段上(尤其是范围条件)。 在经常出现在order by、group by和distinct后的字段。 在分区表上创建索引与在普通表上创建索引的语法不太一样,使用时请注意,如当索引带GLOBAL/LOCAL关键字或者创建索引为GLOBAL索引时不支持创建部分索引。需要注意分区表上创建索引会根据如下规则进行判断:如果创建索引时申明了GLOBAL/LOCAL关键字,则创建对应类型的索引;如果创建索引指定分区名,则创建LOCAL索引;如果是unique索引,索引需包含分区键,此时创建LOCAL索引;否则默认创建GLOBAL索引。
-
示例 --查询集群DN初始状态。 gaussdb=# SELECT node_name, nodeis_preferred FROM pgxc_node WHERE node_type = 'D' ORDER BY 1; node_name | nodeis_preferred -----------+------------------ dn_6001_6002_6003 | f dn_6004_6005_6006 | f dn_6007_6008_6009 | f (3 rows) --创建NODE GROUP,用上一步中查询到的真实节点名称替换dn_6001_6002_6003。 gaussdb=# CREATE NODE GROUP test_group WITH ( dn_6001_6002_6003 ); --删除NODE GROUP。 gaussdb=# DROP NODE GROUP test_group;
-
PKG_SERVICE PKG_SERVICE支持的所有接口请参见表1。 表1 PKG_SERVICE 接口名称 描述 PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE 确认该CONTEXT是否已注册。 PKG_SERVICE.SQL_CLEAN_ALL_CONTEXTS 取消所有注册的CONTEXT。 PKG_SERVICE.SQL_REGISTER_CONTEXT 注册一个CONTEXT。 PKG_SERVICE.SQL_UNREGISTER_CONTEXT 取消注册该CONTEXT。 PKG_SERVICE.SQL_SET_SQL 向CONTEXT设置一条SQL语句,目前只支持SELECT。 PKG_SERVICE.SQL_RUN 在一个CONTEXT上执行设置的SQL语句。 PKG_SERVICE.SQL_NEXT_ROW 读取该CONTEXT中的下一行数据。 PKG_SERVICE.SQL_GET_VALUE 读取该CONTEXT中动态定义的列值 PKG_SERVICE.SQL_SET_RESULT_TYPE 根据类型OID动态定义该CONTEXT的一个列。 PKG_SERVICE.JOB_CANCEL 通过任务ID来删除定时任务。 PKG_SERVICE.JOB_FINISH 禁用或者启用定时任务。 PKG_SERVICE.JOB_SUBMIT 提交一个定时任务。作业号由系统自动生成或由用户指定。 PKG_SERVICE.JOB_UPDATE 修改定时任务的属性,包括任务内容、下次执行时间、执行间隔。 PKG_SERVICE.SUBMIT_ON_NODES 提交一个任务到所有节点,作业号由系统自动生成。 PKG_SERVICE.ISUBMIT_ON_NODES 提交一个任务到所有节点,作业号由用户指定。 PKG_SERVICE.SQL_GET_ARRAY_RESULT 获取该CONTEXT中返回的数组值。 PKG_SERVICE.SQL_GET_VARIABLE_RESULT 获取该CONTEXT中返回的列值。 PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE 该函数用来确认一个CONTEXT是否已注册。该函数传入想查找的CONTEXT ID,如果该CONTEXT存在返回TRUE,反之返回FALSE。 PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE函数原型为: 1 2 3 4 PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE( context_id IN INTEGER ) RETURN BOOLEAN; 表2 PKG_SERVICE.SQL_IS_CONTEXT_ACTIVE接口说明 参数名称 描述 context_id 想查找的CONTEXT ID号。 PKG_SERVICE.SQL_CLEAN_ALL_CONTEXTS 该函数用来取消所有CONTEXT PKG_SERVICE.SQL_CLEAN_ALL_CONTEXTS函数原型为: 1 2 3 PKG_SERVICE.SQL_CLEAN_ALL_CONTEXTS( ) RETURN VOID; PKG_SERVICE.SQL_REGISTER_CONTEXT 该函数用来打开一个CONTEXT,是后续对该CONTEXT进行各项操作的前提。该函数不传入任何参数,内部自动递增生成CONTEXT ID,并作为返回值返回给INTEGER定义的变量。 PKG_SERVICE.SQL_REGISTER_CONTEXT函数原型为: 1 2 3 DBE_SQL.REGISTER_CONTEXT( ) RETURN INTEGER; PKG_SERVICE.SQL_UNREGISTER_CONTEXT 该函数用来关闭一个CONTEXT,是该CONTEXT中各项操作的结束。如果在存储过程结束时没有调用该函数,则该CONTEXT占用的内存仍然会保存,因此关闭CONTEXT非常重要。由于异常情况的发生会中途退出存储过程,导致CONTEXT未能关闭,因此建议存储过程中有异常处理,将该接口包含在内。 PKG_SERVICE.SQL_UNREGISTER_CONTEXT函数原型为: 1 2 3 4 PKG_SERVICE.SQL_UNREGISTER_CONTEXT( context_id IN INTEGER ) RETURN INTEGER; 表3 PKG_SERVICE.SQL_UNREGISTER_CONTEXT接口说明 参数名称 描述 context_id 打算关闭的CONTEXT ID号。 PKG_SERVICE.SQL_SET_SQL 该函数用来解析给定游标的查询语句,被传入的查询语句会立即执行。目前仅支持SELECT查询语句的解析,且语句参数仅可通过text类型传递,长度不大于1G。 PKG_SERVICE.SQL_SET_SQL函数的原型为: 1 2 3 4 5 6 PKG_SERVICE.SQL_SET_SQL( context_id IN INTEGER, query_string IN TEXT, language_flag IN INTEGER ) RETURN BOOLEAN; 表4 PKG_SERVICE.SQL_SET_SQL接口说明 参数名称 描述 context_id 执行查询语句解析的CONTEXT ID。 query_string 执行的查询语句。 language_flag 版本语言号,指定不同版本的行为。 1为非兼容版本。 2为ORA兼容模式版本。 PKG_SERVICE.SQL_RUN 该函数用来执行一个给定的CONTEXT。该函数接收一个CONTEXT ID,运行后获得的数据用于后续操作。目前仅支持SELECT查询语句的执行。 PKG_SERVICE.SQL_RUN函数的原型为: 1 2 3 4 PKG_SERVICE.SQL_RUN( context_id IN INTEGER, ) RETURN INTEGER; 表5 PKG_SERVICE.SQL_RUN接口说明 参数名称 描述 context_id 执行查询语句解析的CONTEXT ID。 PKG_SERVICE.SQL_NEXT_ROW 该函数返回执行SQL实际返回的数据行数,每一次运行该接口都会获取到新的行数的集合,直到数据读取完毕获取不到新行为止。 PKG_SERVICE.SQL_NEXT_ROW函数的原型为: 1 2 3 4 PKG_SERVICE.SQL_NEXT_ROW( context_id IN INTEGER, ) RETURN INTEGER; 表6 PKG_SERVICE.SQL_NEXT_ROW接口说明 参数名称 描述 context_id 执行的CONTEXT ID。 PKG_SERVICE.SQL_GET_VALUE 该函数用来返回给定CONTEXT中给定位置的CONTEXT元素值,该接口访问的是PKG_SERVICE.SQL_NEXT_ROW获取的数据。 PKG_SERVICE.SQL_GET_VALUE函数的原型为: 1 2 3 4 5 6 PKG_SERVICE.SQL_GET_VALUE( context_id IN INTEGER, pos IN INTEGER, col_type IN ANYELEMENT ) RETURN ANYELEMENT; 表7 PKG_SERVICE.SQL_GET_VALUE接口说明 参数名称 描述 context_id 执行的CONTEXT ID。 pos 动态定义列在查询中的位置。 col_type 任意类型变量,定义列的返回值类型。 PKG_SERVICE.SQL_SET_RESULT_TYPE 该函数用来定义从给定CONTEXT返回的列,该接口只能应用于SELECT定义的CONTEXT中。定义的列通过查询列表的相对位置来标识,PKG_SERVICE.SQL_SET_RESULT_TYPE函数的原型为: 1 2 3 4 5 6 7 PKG_SERVICE.SQL_SET_RESULT_TYPE( context_id IN INTEGER, pos IN INTEGER, coltype_oid IN ANYELEMENT, maxsize IN INTEGER ) RETURN INTEGER; 表8 PKG_SERVICE.SQL_SET_RESULT_TYPE接口说明 参数名称 描述 context_id 执行的CONTEXT ID。 pos 动态定义列在查询中的位置。 coltype_oid 任意类型的变量,可根据变量类型得到对应类型OID。 maxsize 定义的列的长度。 PKG_SERVICE.JOB_CANCEL 存储过程CANCEL删除指定的定时任务。 PKG_SERVICE.JOB_CANCEL函数原型为: 1 2 PKG_SERVICE.JOB_CANCEL( id IN INTEGER); 表9 PKG_SERVICE.JOB_CANCEL接口参数说明 参数 类型 入参/出参 是否可以为空 描述 id INTEGER IN 否 指定的作业号。 PKG_SERVICE.JOB_FINISH 存储过程FINISH禁用或者启用定时任务。 PKG_SERVICE.JOB_FINISH函数原型为: 1 2 3 4 PKG_SERVICE.JOB_FINISH( id IN INTEGER, broken IN BOOLEAN, next_time IN TIMESTAMP DEFAULT sysdate); 表10 PKG_SERVICE.JOB_FINISH接口参数说明 参数 类型 入参/出参 是否可以为空 描述 id INTEGER IN 否 指定的作业号。 broken BOOLEAN IN 否 状态标志位,TRUE代表禁用,FALSE代表启用。根据TRUE或FALSE值更新当前job;如果为空值,则不改变原有job的状态。 next_time TIMESTAMP IN 是 下次运行时间,默认为当前系统时间。如果参数broken状态为TRUE,则更新该参数为'4000-1-1';如果参数broken状态为FALSE,且如果参数next_time不为空值,则更新指定job的next_time值,如果next_time为空值,则不更新next_time值。该参数可以省略,为默认值。 PKG_SERVICE.JOB_SUBMIT 存储过程JOB_SUBMIT提交一个系统提供的定时任务。 PKG_SERVICE.JOB_SUBMIT函数原型为: 1 2 3 4 5 6 PKG_SERVICE.JOB_SUBMIT( id IN BIGINT, content IN TEXT, next_time IN TIMESTAMP DEFAULT sysdate, interval_time IN TEXT DEFAULT 'null', job OUT INTEGER); 当创建一个定时任务(JOB)时,系统默认将当前数据库和用户名与当前创建的定时任务绑定起来。该接口函数可以通过call或select调用,如果通过select调用,可以不填写出参。如果在存储过程中,则需要通过perform调用该接口函数。如果提交的sql语句任务使用到非public的schema,应该指定表或者函数的schema,或者在sql语句前添加set current_schema = xxx;语句。 表11 PKG_SERVICE.JOB_SUBMIT接口参数说明 参数 类型 入参/出参 是否可以为空 描述 id BIGINT IN 否 作业号。如果传入id为NULL,则内部会生成作业ID。 content TEXT IN 否 要执行的SQL语句。支持一个或多个‘DML’,‘匿名块’,‘调用存储过程的语句’或3种混合的场景。 next_time TIMESTAMP IN 否 下次作业运行时间。默认值为当前系统时间(sysdate)。如果是过去时间,在提交作业时表示立即执行。 interval_time TEXT IN 是 用来计算下次作业运行时间的时间表达式,可以是interval表达式,也可以是sysdate加上一个NUMERIC值(例如:sysdate+1.0/24)。如果为空值或字符串"null"表示只执行一次,执行后JOB状态STATUS变成'd' 不再执行。 job INTEGER OUT 否 作业号。范围为1~32767。当使用select调用pkg_service.job_submit时,该参数可以省略。 PKG_SERVICE.JOB_UPDATE 存储过程UPDATE修改定时任务的属性,包括任务内容、下次执行时间、执行间隔。 PKG_SERVICE.JOB_UPDATE函数原型为: 1 2 3 4 5 PKG_SERVICE.JOB_UPDATE( id IN BIGINT, next_time IN TIMESTAMP, interval_time IN TEXT, content IN TEXT); 表12 PKG_SERVICE.JOB_UPDATE接口参数说明 参数 类型 入参/出参 是否可以为空 描述 id INTEGER IN 否 指定的作业号。 next_time TIMESTAMP IN 是 下次运行时间。如果该参数为空值,则不更新指定job的next_time值,否则更新指定job的next_time值。 interval_time TEXT IN 是 用来计算下次作业运行时间的时间表达式。如果该参数为空值,则不更新指定job的interval_time值;如果该参数不为空值,会校验interval_time是否为有效的时间类型或interval类型,则更新指定job的interval_time值。如果为字符串"null"表示只执行一次,执行后JOB状态STATUS变成'd' 不再执行。 content TEXT IN 是 执行的存储过程名或者sql语句块。如果该参数为空值,则不更新指定job的content值,否则更新指定job的content值。 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 CREATE TABLE test_table(a int); CREATE TABLE CREATE OR REPLACE PROCEDURE test_job(a in int) IS BEGIN INSERT INTO test_table VALUES(a); COMMIT; END; / CREATE PROCEDURE --PKG_SERVICE.JOB_SUBMIT SELECT PKG_SERVICE.JOB_SUBMIT(NULL, 'call test_job(1);', to_date('20180101','yyyymmdd'),'sysdate+1'); job_submit ------------ 28269 (1 row) SELECT PKG_SERVICE.JOB_SUBMIT(NULL, 'call test_job(1);', to_date('20180101','yyyymmdd'),'sysdate+1.0/24'); job_submit ------------ 1506 (1 row) CALL PKG_SERVICE.JOB_SUBMIT(NULL, 'INSERT INTO test_table VALUES(1); call test_job(1); call test_job(1);', add_months(to_date('201701','yyyymm'),1), 'date_trunc(''day'',SYSDATE) + 1 +(8*60+30.0)/(24*60)' ,:jobid); job ------- 14131 (1 row) SELECT PKG_SERVICE.JOB_SUBMIT (101, 'insert_msg_statistic1;', sysdate, 'sysdate+3.0/24'); job_submit ------------ 101 (1 row) --PKG_SERVICE.JOB_UPDATE CALL PKG_SERVICE.JOB_UPDATE(101, sysdate, 'sysdate + 1.0/1440', 'call test_job(1);'); job_update ------------ (1 row) CALL PKG_SERVICE.JOB_UPDATE(101, sysdate, 'sysdate + 1.0/1440', 'insert into test_table values(1);'); job_update ------------ (1 row) --PKG_SERVICE.JOB_FINISH CALL PKG_SERVICE.JOB_FINISH(101,true); job_finish ------------ (1 row) --PKG_SERVICE.JOB_CANCEL CALL PKG_SERVICE.JOB_CANCEL(101); job_cancel ------------ (1 row) DROP TABLE test_table; DROP TABLE PKG_SERVICE.SUBMIT_ON_NODES 存储过程SUBMIT_ON_NODES创建一个所有CN/DN上的定时任务,仅sysadmin/monitor admin有此权限。 PKG_SERVICE.SUBMIT_ON_NODES函数原型为: 1 2 3 4 5 6 7 PKG_SERVICE.SUBMIT_ON_NODES( node_name IN NAME, database IN NAME, what IN TEXT, next_date IN TIMESTAMP WITHOUT TIME ZONE, job_interval IN TEXT, job OUT INTEGER); 表13 PKG_SERVICE.SUBMIT_ON_NODES接口参数说明 参数 类型 入参/出参 是否可以为空 描述 node_name TEXT IN 否 指定作业的执行节点,当前仅支持值为'ALL_NODE'(在所有节点执行)与'CCN'(在central coordinator执行)。 database TEXT IN 否 集群作业所使用的database,节点类型为'ALL_NODE'时仅支持值为'postgres'。 what TEXT IN 否 要执行的SQL语句。支持一个或多个‘DML’,‘匿名块’,‘调用存储过程的语句’或3种混合的场景。 nextdate TIMESTAMP IN 否 下次作业运行时间。默认值为当前系统时间(sysdate)。如果是过去时间,在提交作业时表示立即执行。 job_interval TEXT IN 否 用来计算下次作业运行时间的时间表达式,可以是interval表达式,也可以是sysdate加上一个NUMERIC值(例如:sysdate+1.0/24)。如果为空值或字符串"null"表示只执行一次,执行后JOB状态STATUS变成'd'不再执行。 job INTEGER OUT 否 作业号。范围为1~32767。当使用select调用dbms.submit_on_nodes时,该参数可以省略。 示例: 1 2 3 4 5 6 7 8 9 10 11 SELECT pkg_service.submit_on_nodes('ALL_NODE', 'postgres', 'select capture_view_to_json(''dbe_perf.statement'', 0);', sysdate, 'interval ''60 second'''); submit_on_nodes ----------------- 12068 (1 row) SELECT pkg_service.submit_on_nodes('CCN', 'postgres', 'select capture_view_to_json(''dbe_perf.statement'', 0);', sysdate, 'interval ''60 second'''); submit_on_nodes ----------------- 9027 (1 row) PKG_SERVICE.ISUBMIT_ON_NODES ISUBMIT_ON_NODES与SUBMIT_ON_NODES语法功能相同,但其第一个参数是入参,即指定的作业号,SUBMIT最后一个参数是出参,表示系统自动生成的作业号。仅sysadmin/monitor admin有此权限。 PKG_SERVICE.SQL_GET_ARRAY_RESULT 该函数用来返回绑定的数组类型的OUT参数的值,可以用来获取存储过程中的OUT参数。 PKG_SERVICE.SQL_GET_ARRAY_RESULT函数原型为: 1 2 3 4 5 6 PKG_SERVICE.SQL_GET_ARRAY_RESULT( context_id in int, pos in VARCHAR2, column_value inout anyarray, result_type in anyelement ); 表14 PKG_SERVICE.SQL_GET_ARRAY_RESULT接口说明 参数名称 描述 context_id 想查找的CONTEXT ID号。 pos 绑定的参数名。 column_value 返回值。 result_type 返回值类型。 PKG_SERVICE.SQL_GET_VARIABLE_RESULT 该函数用来返回绑定的非数组类型的OUT参数的值,可以用来获取存储过程中的OUT参数。 PKG_SERVICE.SQL_GET_VARIABLE_RESULT函数原型为: 1 2 3 4 5 6 PKG_SERVICE.SQL_GET_VARIABLE_RESULT( context_id in int, pos in VARCHAR2, result_type in anyelement ) RETURNS anyelement; 表15 PKG_SERVICE.SQL_GET_VARIABLE_RESULT接口说明 参数名称 描述 context_id 想查找的CONTEXT ID号。 pos 绑定的参数名。 result_type 返回值类型。 父主题: 基础接口
-
执行具有输入参数的语句 准备一个普通语句,通过替换参数(在想要替换参数的地方输入问号)执行它的特定版本。使用EXECUTE语句通过USING子句给定参数执行准备语句。 示例如下: EXEC SQL BEGIN DECLARE SECTION; const char *stmt = "INSERT INTO test1 VALUES(?, ?);"; EXEC SQL END DECLARE SECTION; /* PREPARE 准备一个语句用于执行 */ EXEC SQL PREPARE mystmt FROM :stmt; ... /* 单引号为有效字符,若用字符串需用双引号 */ EXEC SQL EXECUTE mystmt USING 42, 'foobar'; /* 当不再需要预备语句时,应该释放它 */ EXEC SQL DEALLOCATE PREPARE name; 父主题: 执行动态SQL语句
-
检查隐式转换的性能问题 在某些场景下,数据类型的隐式转换可能会导致潜在的性能问题。请看如下场景: SET enable_fast_query_shipping = off; CREATE TABLE t1(c1 VARCHAR, c2 VARCHAR); CREATE INDEX on t1(c1); EXPLAIN verbose SELECT * FROM t1 WHERE c1 = 10; 上述查询的执行计划如下: c1的数据类型是varchar,当查询的过滤条件为c1 = 10时,优化器默认将c1隐式转换为bigint类型,导致两个后果: 不能进行DN裁剪,计划下发到所有DN上执行。 计划中不能使用Index Scan方式扫描数据。 这会引起潜在的性能问题。 当知道了问题原因后,可以做针对性的SQL改写。对于上述场景,只要将过滤条件中的常量显式转换为varchar类型,结果如下: EXPLAIN verbose SELECT * FROM t1 WHERE c1 = 10::varchar; 为了提前识别隐式类型转换可能带来的性能影响, GaussDB 提供了一个guc option:check_implicit_conversions。打开该参数后,对于查询中出现的隐式类型转换的索引列,在路径生成阶段进行检查,如果发现索引列没有生成候选的索引扫描路径,则会通过报错的形式提示给用户。举例如下: SET check_implicit_conversions = on; SELECT * FROM t1 WHERE c1 = 10; ERROR: There is no optional index path for index column: "t1"."c1". 参数check_implicit_conversions只用于检查隐式类型转换引起的潜在性能问题,在正式生产环境中请关闭该参数(该参数默认关闭)。 在将check_implicit_conversions打开时,必须同时关闭enable_fast_query_shipping参数,否则由于后一个参数的作用,无法查看对隐式类型转换修复的结果。 一个表的候选路径可能包括seq scan和index scan等多个可能的数据扫描方式,最终执行计划使用的表扫描方式是由执行计划的代价来决定的,因此即使生成了索引扫描的候选路径,也可能生成的最终执行计划中使用其它扫描方式。 父主题: SQL调优指南
-
ROLE_ROLE_PRIVS ROLE_ROLE_PRIVS视图显示授予其他角色的角色,仅提供用户有权访问的角色的信息。默认所有用户都可以访问。该视图同时存在于PG_CATA LOG 和SYS Schema下。 表1 ROLE_ROLE_PRIVS字段 名称 类型 描述 role character varying(128) 角色名称。 granted_role character varying(128) 被授予的角色。 admin_option character varying(3) 该授权是否包含ADMIN选项。 YES:包含ADMIN选项。 NO:不包含ADMIN选项。 common character varying(3) 暂不支持,值为NULL。 inherited character varying(3) 暂不支持,值为NULL。 父主题: 用户和权限管理
-
如果建表时没有指定分布列,数据会怎么存储? 答:建表时没有指定分布列,数据会以如下三种场景存储: 若建表时包含主键/唯一约束,则选取HASH分布,分布列为主键/唯一约束对应的列。 gaussdb=# CREATE TABLE tb_test1 ( W_WAREHOUSE_SK INTEGER PRIMARY KEY, W_WAREHOUSE_ID CHAR(16) NOT NULL, W_WAREHOUSE_NAME VARCHAR(20) ); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "tb_test1_pkey" for table "tb_test1" CREATE TABLE gaussdb=# SELECT getdistributekey('tb_test1'); getdistributekey ------------------ w_warehouse_sk (1 row) --删除表。 gaussdb=# DROP TABLE tb_test1; 若建表时不包含主键/唯一约束,但存在数据类型支持作分布列的列,则选取HASH分布,分布列为第一个数据类型支持作分布列的列。 gaussdb=# CREATE TABLE tb_test2 ( W_WAREHOUSE_SK INTEGER , W_WAREHOUSE_ID CHAR(16) NOT NULL, W_WAREHOUSE_NAME VARCHAR(20) ); NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'w_warehouse_sk' as the distribution column by default. HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. CREATE TABLE gaussdb=# SELECT getdistributekey('tb_test2'); getdistributekey ------------------ w_warehouse_sk (1 row) --删除表。 gaussdb=# DROP TABLE tb_test2; 若建表时不包含主键/唯一约束,也不存在数据类型支持作分布列的列,选取ROUNDROBIN分布。 gaussdb=# CREATE TABLE tb_test3 ( W_WAREHOUSE_ID CHAR(16) NOT NULL, W_WAREHOUSE_NAME VARCHAR(20) ); NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'w_warehouse_id' as the distribution column by default. HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column. CREATE TABLE gaussdb=# SELECT getdistributekey('tb_test3'); getdistributekey ------------------ w_warehouse_id (1 row) --删除表。 gaussdb=# DROP TABLE tb_test3; 父主题: FAQ
-
STATIO_SYS_INDEXES STATIO_SYS_INDEXES显示命名空间中所有系统表索引的I/O状态信息,如表1所示。 表1 STATIO_SYS_INDEXES字段 名称 类型 描述 relid oid 索引的表的OID。 indexrelid oid 该索引的OID。 schemaname name 该索引的模式名。 relname name 该索引的表名。 indexrelname name 索引名称。 idx_blks_read bigint 从索引中读取的磁盘块数。 idx_blks_hit bigint 索引命中缓存数。 last_updated timestamp with time zone 视图中该对象监控数据最后一次更新的时间。 父主题: Cache/IO
-
GS_SQL_COUNT GS_SQL_COUNT视图显示数据库当前节点当前时刻执行的五类语句(SELECT、INSERT、UPDATE、DELETE、MERGE INTO)统计信息。具体字段信息如表1所示。 普通用户查询GS_SQL_COUNT视图仅能看到该用户当前节点的统计信息;管理员权限用户查询GS_SQL_COUNT视图则能看到所有用户当前节点的统计信息。 当集群或该节点重启时,计数将清零,并重新开始计数 。 计数以节点收到的查询数为准,包括集群内部进行的查询。例如,CN收到一条查询,若下发多条查询DN,那将在DN上进行相应次数的计数。 表1 GS_SQL_COUNT字段 名称 类型 描述 node_name name 节点名称。 user_name name 用户名。 select_count bigint SELECT语句统计结果。 update_count bigint UPDATE语句统计结果。 insert_count bigint INSERT语句统计结果。 delete_count bigint DELETE语句统计结果。 mergeinto_count bigint MERGE INTO语句统计结果。 ddl_count bigint DDL语句的数量。该统计结果包含用户执行的SQL语句和数据库后台线程执行的SQL语句,包括“TRUNCATE”、“VACUUM”、“ANALYZE”、“CREATE”(不包括“CREATE ROLE”和“CREATE USER”)、“DROP”(不包括“DROP ROLE”和“DROP USER”)、“ALTER”(不包括“ALTER ROLE”、“ALTER USER”和“ALTER DEFAULT PRIVILEGES”)、“REINDEX”和“COMMENT”语句。 dml_count bigint DML语句的数量。该统计结果包含用户执行的SQL语句和数据库后台线程执行的SQL语句,包括“UPDATE”、“INSERT”、“DELETE”、“MERGE”、“PREPARE”、“EXPLAIN”、“SHOW”、“LOCK”、“COPY”、“CLUSTER”、“ANONYMOUS”、“DELTA”、“EXECUTE”、“MOVE”、“FETCH”、“CLOSE”、“DEALLOCATE”、“DECLARE”和“LOAD”语句。 dcl_count bigint DCL语句的数量。该统计结果包含用户执行的SQL语句和数据库后台线程执行的SQL语句,包括“CREATE ROLE”、“CREATE USER”、“DROP ROLE”、“DROP USER”、“ALTER ROLE”、“ALTER USER”、“ALTER DEFAULT PRIVILEGES”、“GRANT”、“REVOKE”、“REASSIGN”和“SET”语句。 total_select_elapse bigint 总SELECT的时间花费(单位:微秒)。 avg_select_elapse bigint 平均SELECT的时间花费(单位:微秒)。 max_select_elapse bigint 最大SELECT的时间花费(单位:微秒)。 min_select_elapse bigint 最小SELECT的时间花费(单位:微秒)。 total_update_elapse bigint 总UPDATE的时间花费(单位:微秒)。 avg_update_elapse bigint 平均UPDATE的时间花费(单位:微秒)。 max_update_elapse bigint 最大UPDATE的时间花费(单位:微秒)。 min_update_elapse bigint 最小UPDATE的时间花费(单位:微秒)。 total_insert_elapse bigint 总INSERT的时间花费(单位:微秒)。 avg_insert_elapse bigint 平均INSERT的时间花费(单位:微秒)。 max_insert_elapse bigint 最大INSERT的时间花费(单位:微秒)。 min_insert_elapse bigint 最小INSERT的时间花费(单位:微秒)。 total_delete_elapse bigint 总DELETE的时间花费(单位:微秒)。 avg_delete_elapse bigint 平均DELETE的时间花费(单位:微秒)。 max_delete_elapse bigint 最大DELETE的时间花费(单位:微秒)。 min_delete_elapse bigint 最小DELETE的时间花费(单位:微秒)。 dbid oid 统计的五类语句(SELECT、INSERT、UPDATE、DELETE、MERGE INTO)所属的数据库id。 user_dml_count bigint 用户执行的DML语句的数量。 bg_dml_count bigint 数据库后台线程执行的DML语句的数量。 父主题: 其他系统视图
-
参数说明 WITH [ RECURSIVE ] with_query [, ...] 用于声明一个或多个可以在主查询中通过名称引用的子查询,相当于临时表。这种子查询语句结构称为CTE(Common Table Expression)结构,应用这种结构时,执行计划中将存在CTE SCAN的内容。 如果声明了RECURSIVE,那么允许SELECT子查询通过名称引用它自己。 其中with_query中: with_query_name指定子查询生成的结果集名称,在查询中可使用该名称访问子查询的结果集。 column_name指定子查询结果集中显示的列名。 每个子查询可以是SELECT、VALUES、INSERT、UPDATE或DELETE语句。 用户可以使用MATERIALIZED或NOT MATERIALIZED对CTE进行修饰。 如果声明为MATERIALIZED,WITH查询将被物化,生成一个子查询结果集的复制,在引用处直接查询该复制,因此WITH子查询无法和主干SELECT语句进行联合优化(如谓词下推、等价类传递等),对于此类场景可以使用NOT MATERIALIZED进行修饰,如果WITH查询语义上可以作为子查询内联执行,则可以进行上述优化。 如果用户没有显示声明物化属性则遵守以下规则:如果CTE只在所属SELECT主干中被引用一次,且语义上支持内联执行,则会被改写为子查询内联执行,否则以CTE Scan的方式物化执行。 plan_hint 以/*+ */的形式在UPDATE关键字后,用于对UPDATE对应的语句块生成的计划进行hint调优,详细用法请参见章节使用Plan Hint进行调优。每条语句中只有第一个/*+ plan_hint */注释块会作为hint生效,里面可以写多条hint。 table_name 要更新的表名,可以使用模式修饰。如果在表名前指定了ONLY,只会更新表中匹配的行。如果未指定,任何从该表继承到的表中的匹配行也会被更新。 取值范围:已存在的表名称。 支持使用DATABASE LINK方式对远端表进行操作,使用方式详情请见DATABASE LINK。 subquery 要更新的子查询,在对子查询进行更新时,会将子查询当成一个临时视图,支持在子查询后面加CHECK OPTION选项。 如果子查询中只有一张表,则对该表更新数据;如果子查询中有多张表或有嵌套关系,则通过判断是否有保留键表确定是否可更新。关于保留键表和WITH CHECK OPTION请参见CREATE VIEW。 view_name 要更新的目标视图。 对视图和子查询的更新,有如下约束: 只有直接引用基表用户列的列可进行UPDATE操作。 子查询或视图必须至少包含一个可更新列,关于可更新列请参见CREATE VIEW。 不支持在顶层包含DISTINCT、GROUP BY、HAVING、LIMIT、OFFSET子句的视图和子查询。 不支持在顶层包含集合运算(UNION、INTERSECT、EXCEPT、MINUS)的视图和子查询。 不支持目标列表中包含聚集函数、窗口函数、返回集合函数(array_agg、json_agg、generate_series等)的视图和子查询。 不支持仅带有BEFORE/AFTER触发器,没有INSTEAD OF触发器或INSTEAD规则的视图。 视图和子查询中支持的表类型包括普通表、临时表、全局临时表、分区表、二级分区表、ustore表、astore表。 多表连接视图或连接子查询中一次只能更新一张基表。 连接视图或子查询只能更新保留键表,如果指定了CHECK OPTION选项,则无法对连接列做更新操作。关于保留键表请参见CREATE VIEW。 不支持更新系统视图。 partition_clause 指定分区更新操作。 PARTITION指定多个分区名时,可以存在相同的分区名,最终分区范围取其并集。 alias 目标表的别名。 取值范围:字符串,符合标识符命名规范。 column_name 要修改的字段名。 支持使用目标表的别名加字段名来引用这个字段。例如:UPDATE foo AS f SET f.col_name = 'namecol'。 取值范围:已存在的字段名。 expression 赋给字段的值或表达式。 DEFAULT 用对应字段的缺省值填充该字段。 如果没有缺省值,则为NULL。 sub_query 子查询。 使用同一数据库里其他表的信息来更新一个表可以使用子查询的方法。其中SELECT子句具体介绍请参见SELECT。 在UPDATE单列时,支持使用ORDER BY子句与LIMIT子句;而在UPDATE多列时,不支持使用ORDER BY子句与LIMIT子句。 当SET子句中,子查询的WHERE语句使用"(+)"操作符时,需在兼容性参数behavior_compat_options中增加配置项enable_ora_joinop_in_updatestmt才能生效。 from_list 一个表的表达式列表,允许在WHERE条件里使用其他表的字段。与在一个SELECT语句的FROM子句里声明表列表类似。 目标表不能出现在from_list里,除非在使用一个自连接(此时它必须以from_list的别名出现)。 condition 一个返回Boolean类型结果的表达式。只有这个表达式返回true的行才会被更新。不建议使用int等数值类型作为condition,因为int等数值类型可以隐式转换为Boolean值(非0值隐式转换为true,0转换为false),可能导致非预期的结果。 WHERE CURRENT OF cursor_name 当cursor指向表的某一行时,可以使用此语法更新cursor当前指向的行。 cursor_name:指定游标的名称。 MYSQL兼容模式的数据库不支持使用此语法。 此语法仅支持普通表,不支持分区表,不支持Hashbucket表。 仅支持在存储过程中使用。 不支持与其他WHERE条件组合使用。 不支持与WITH、USING、ORDER BY、FROM组合使用。 CURSOR对应的SELECT语句必须声明为FOR UPDATE。 CURSOR对应的SELECT语句仅支持单表,不支持LIMIT/OFFSET,不支持带有子查询、子链接。 存储过程中声明为FOR UPDATE的CURSOR,在COMMIT/ROLLBACK后,将无法再次使用。 若CURSOR指向的行已经不存在,在ORA兼容性模式下将报错指定的行不存在(仅UPDATE时报错,DELETE不报错),其他兼容模式下不报错。 复制表使用此语法时,不支持下推,必须有主键。 ORDER BY 关键字详见SELECT章节介绍。 LIMIT 关键字详见SELECT章节介绍。 RETURNING output_expression 在所有需要更新的行都被更新之后,UPDATE命令用于计算返回值的表达式。 取值范围:使用任何TABLE以及FROM中列出的表的字段。*表示返回所有字段。 output_name 字段的返回名称。
-
语法格式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [ WITH [ RECURSIVE ] with_query [, ...] ] UPDATE [/*+ plan_hint */] [ ONLY ] {table_name [ partition_clause ] | subquery | view_name} [ * ] [ [ AS ] alias ] SET {column_name = { expression | DEFAULT } |( column_name [, ...] ) = {( { expression | DEFAULT } [, ...] ) |sub_query }}[, ...] [ FROM from_list] [ WHERE condition | WHERE CURRENT OF cursor_name ] [ ORDER BY {expression [ [ ASC | DESC | USING operator ] [ LIMIT { count } ] [ RETURNING {* | {output_expression [ [ AS ] output_name ]} [, ...] }]; where sub_query can be: SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] { * | {expression [ [ AS ] output_name ]} [, ...] } [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY grouping_element [, ...] ] [ HAVING condition [, ...] ] [ ORDER BY {expression [ [ ASC | DESC | USING operator ] | nlssort_expression_clause ] [ NULLS { FIRST | LAST } ]} [, ...] ] [ LIMIT { [offset,] count | ALL } ]
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- ...
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333