华为云用户手册
-
GS_ LOG ICAL_SET GS_LOGICAL_SET系统表存储SET数据类型定义的元数据。 表1 GS_LOGICAL_SET字段 字段名称 字段类型 说明 setid oid 行标识符。 settypid oid SET数据类型的OID。 setnum tinyint SET数据类型的成员数量,最大64个成员。 setsortorder tinyint SET数据类型定义时成员的排序位置,从0开始编号。 setlabel text SET数据类型的成员名称。 dbnode oid 数据库OID。 originid integer 元组的来源标识符。 createtime timestamp with time zone 插入元组的时间戳。 csnmin bigint 插入元组时的 CS N(提交序列号)。 csnmax bigint 更新或删除元组时的 CSN。 numbers integer 用于M兼容SET和ENUM数据类型的成员数量,仅M兼容模式用到该字段。 sortorder integer 用于M兼容SET和ENUM数据类型定义时成员的排序位置,仅M兼容模式用到该字段。 父主题: 逻辑解码
-
GS_STAT_PROGRESS_VACUUM 用于查看当前VACUUM的进度。字段描述如下: 表1 GS_STAT_PROGRESS_VACUUM字段 参数类型 参数 描述 输入参数 pid VACUUM线程的线程pid。 输出参数 dataname 正在清理的数据库名称。 输出参数 relid 正在清理表的OID。 输出参数 relname 正在清理的表名称。 输出参数 phase 当前VACUUM所处的阶段。 输出参数 detail 清理进度详情,包含总页面数、已扫描页面数、已清理页面数和已清理索引数。 运行结果如下: gaussdb=# select * from GS_STAT_PROGRESS_VACUUM(140123447490304); pid | dataname | relid | relname | phase | detail -----------------+----------+-------+---------+---------------+--------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- 140123447490304 | postgres | 24602 | t1 | scanning heap | vacuum db "postgres" starts at 2025-02-09 13:34:24.497618-05, vacuumed 12/240 relations, current r elation "t1"; heap: scanned 32369/73216 blocks, skipped 0 blocks; info: found 0 dead tuples, already run 357s, delay 356s. (1 row) 父主题: VACUUM
-
数据表膨胀可能的原因 为了保证数据库的业务性能,删除操作不会立即释放历史版本行的空间,而是将其标记为删除,之后异步回收这些空间。如果回收操作出现阻塞或逻辑缺陷,就会导致删除的空间无法复用,新插入的行不断扩展文件,从而导致数据表空间膨胀。空间膨胀可能出现在数据库的索引、堆表以及许多日志文件中。在此,我们重点讨论堆表空间膨胀的原理。 对于Astore存储引擎,多版本机制将历史版本存放在堆表上,形成版本链。当元组被删除或更新时,原来的元组变为死亡元组,只有当这些操作事务的事务号小于oldestxmin时,才能触发回收。因此,Astore很容易出现空间膨胀问题。 Ustore存储引擎采用多版本管理机制,将历史版本统一存放在Undo中,事务提交后即可清理。此外,Ustore使用原位更新替代Astore的追加更新方式,更新操作不会引起堆表空间膨胀。因此,在频繁更新的场景中,Ustore的空间稳定性远优于Astore存储引擎。然而,这并不意味着Ustore不会发生空间膨胀。通过回溯总结历史问题,我们将导致堆表空间膨胀的主要原因归结为以下几类: 长事务存在,导致oldestxmin未正常推进,删除事务提交后空间无法正常复用。 AUTOVACUUM清理效率低,无法跟上业务生成死亡元组的效率。 FSM错误或不准确,导致空间膨胀。 长事务导致oldestxmin卡住 AUTOVACUUM清理效率低 FSM出现损坏 父主题: 常见问题
-
SNAPSHOT.TABLES_SNAP_TIMESTAMP TABLES_SNAP_TIMESTAMP表记录所有存储的WDR Snapshot中数据库、表对象以及WDR快照的开始和结束时间,WDR Snapshot在启动后(打开GUC参数enable_wdr_snapshot)会触发创建该表,如表1所示。 表1 TABLES_SNAP_TIMESTAMP表属性 名称 类型 描述 示例 snapshot_id bigint WDR快照序号。 1 node_name name WDR快照的表信息所属的节点名。 dn_6001 db_name text WDR Snapshot对应的database。 tpcc1000 tablename text WDR Snapshot对应的table。 snap_xc_statio_all_indexes start_ts timestamp WDR快照的开始时间。 2019-12-28 17:11:27.425849+08 end_ts timestamp WDR快照的结束时间。 2019-12-28 17:11:27.707398+08 父主题: WDR Snapshot原信息
-
GS_SLICEGROUP GS_SLICEGROUP系统表存储当前数据库中创建的SLICEGROUP的信息。 表1 GS_SLICEGROUP字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 slicename name 当前版本暂不支持,值为NULL。 type "char" 当前版本暂不支持,值为NULL。 strategy "char" 当前版本暂不支持,值为NULL。 bucketgroup smallint 当前版本暂不支持,值为NULL。 bucketcnt integer 当前版本暂不支持,值为NULL。 sgroupoid oid 当前版本暂不支持,值为NULL。 sindex integer 当前版本暂不支持,值为NULL。 nodeid integer 当前版本暂不支持,值为NULL。 redis_nodeid smallint 当前版本暂不支持,值为NULL。 bucket smallint 当前版本暂不支持,值为NULL。 slicecnt integer 当前版本暂不支持,值为NULL。 contained boolean 当前版本暂不支持,值为NULL。 specified boolean 当前版本暂不支持,值为NULL。 sliceorder integer 当前版本暂不支持,值为NULL。 boundaries text[] 当前版本暂不支持,值为NULL。 bucketversion integer 当前版本暂不支持,值为NULL。 bucketcsn xid 当前版本暂不支持,值为NULL。 bucketxid xid 当前版本暂不支持,值为NULL。 distributetype oidvector 当前版本暂不支持,值为NULL。 父主题: 其他系统表
-
GS_SPM_PLAN_HISTORY_DETAIL GS_SPM_PLAN_HISTORY_DETAIL是用于查看数据库中跳变历史信息的视图,SYSADMIN和初始用户权限均可以访问该视图。 表1 GS_SPM_PLAN_HISTORY_DETAIL字段 名称 类型 描述 sql_hash bigint SPM中SQL的唯一标识。 plan_hash bigint 当前SQL中的plan的唯一标识。 plan_hash_previous bigint 上一次使用plan的唯一标识,若不存在上一次计划则为0。 unique_sql_id bigint 数据库中SQL的唯一标识。 outline text outline文本,可固定当前计划的一组Hint。 status text 计划的状态,取值: UNACC:未接受的计划。 ACC:已经接受的计划。 FIXED:一种特殊的ACC状态的计划,计划的匹配优先级高于ACC状态的计划。 gplan boolean 当前outline对应的计划是否是gplan。 cost double precision 计划的总代价。 sql_text text SQL的文本串。 param_num integer SQL的参数数量。 source text baseline的来源。 userid oid 用户的oid。 baseline_creation_time timestamp with time zone baseline的创建时间。 history_creation_time timestamp with time zone 跳变历史的创建时间。 modification_time timestamp with time zone baseline的修改时间。 父主题: SPM计划管理
-
示例 --设置如下参数: SET ddl_invalid_mode='invalid'; SET SET enable_force_create_obj=on; SET -- pkg2通过类型依赖pkg1 CREATE OR REPLACE PACKAGE pkg1 IS TYPE rec1 IS RECORD(id INT, name VARCHAR(2)); END pkg1; / CREATE PACKAGE CREATE OR REPLACE PACKAGE pkg2 IS TYPE rec2 IS RECORD(rec1 pkg1.rec1); END pkg2; / CREATE PACKAGE SELECT DISTINCT p.pkgname AS objname, q.pkgname AS refobjname FROM pg_depend AS dp INNER JOIN gs_package AS p ON dp.objid=p.oid INNER JOIN gs_package AS q ON dp.refobjid=q.oid WHERE p.pkgname='pkg2'; objname | refobjname ---------+------------ pkg2 | pkg1 -- pkg2通过变量依赖pkg1 CREATE OR REPLACE PACKAGE pkg1 IS var1 INT; END pkg1; / CREATE PACKAGE CREATE OR REPLACE PACKAGE pkg2 IS var2 INT := pkg1.var1; END pkg2; / CREATE PACKAGE SELECT DISTINCT p.pkgname AS objname, q.pkgname AS refobjname FROM pg_depend AS dp INNER JOIN gs_package AS p ON dp.objid=p.oid INNER JOIN gs_package AS q ON dp.refobjid=q.oid WHERE p.pkgname='pkg2'; objname | refobjname ---------+------------ pkg2 | pkg1 (1 row) -- pkg2通过直接调用依赖pkg1 CREATE OR REPLACE PACKAGE pkg1 IS PROCEDURE proc1(); END pkg1; / CREATE PACKAGE CREATE OR REPLACE PACKAGE BODY pkg1 IS PROCEDURE proc1() AS BEGIN RAISE INFO 'proc1'; END; END pkg1; / CREATE PACKAGE BODY CREATE OR REPLACE PACKAGE pkg2 IS PROCEDURE proc2(); END pkg2; / CREATE PACKAGE CREATE OR REPLACE PACKAGE BODY pkg2 IS PROCEDURE proc2() AS BEGIN RAISE INFO 'proc2'; pkg1.proc1(); END; END pkg2; / CREATE PACKAGE BODY SELECT DISTINCT p.pkgname AS objname, q.pkgname AS refobjname FROM pg_depend AS dp INNER JOIN gs_package AS p ON dp.objid=p.oid INNER JOIN gs_package AS q ON dp.refobjid=q.oid WHERE p.pkgname='pkg2'; objname | refobjname ---------+------------ pkg2 | pkg1 (1 row) -- func2通过直接调用依赖func1 CREATE OR REPLACE FUNCTION func1 RETURN INT AS BEGIN RETURN 1; END; / CREATE FUNCTION CREATE OR REPLACE FUNCTION func2 RETURN INT AS BEGIN func1(); RETURN 1; END; / CREATE FUNCTION SELECT DISTINCT p.proname AS objname, q.proname AS refobjname FROM pg_depend AS dp INNER JOIN pg_proc AS p ON dp.objid=p.oid INNER JOIN pg_proc AS q ON dp.refobjid=q.oid WHERE p.proname='func2' AND q.proname='func1'; objname | refobjname ---------+------------ func2 | func1 (1 row) -- func2通过perform调用func1,不记录依赖关系 CREATE OR REPLACE FUNCTION func1 RETURN INT AS BEGIN RETURN 1; END; / CREATE FUNCTION CREATE OR REPLACE FUNCTION func2 RETURN INT AS BEGIN PERFORM func1(); RETURN 1; END; / CREATE FUNCTION SELECT DISTINCT p.proname AS objname, q.proname AS refobjname FROM pg_depend AS dp INNER JOIN pg_proc AS p ON dp.objid=p.oid INNER JOIN pg_proc AS q ON dp.refobjid=q.oid WHERE p.proname='func2' AND q.proname='func1'; objname | refobjname ---------+------------ (0 rows)
-
VACUUM参数介绍 表1 VACUUM参数介绍 名称 描述 默认取值 track_counts 是否开启统计信息收集功能。 on AutoVacuum 是否启动系统自动清理功能。 on AutoVacuum_mode 仅在AutoVacuum设置为on的场景下生效,它控制Autoanalyze或AutoVacuum的打开情况。 mix autovacuum_max_workers 设置系统自动清理工作进程的最大数量。 3 autovacuum_naptime 设置两次系统自动清理操作之间的间隔时间。 10min autovacuum_vacuum_cost_limit 将在AutoVacuum操作里使用的cost上限。 1000 autovacuum_vacuum_cost_delay 如果超过了上面的cost上限,需要休眠的时间。 20ms vacuum_freeze_min_age tuple的年龄超过该值时需要freeze。 20亿 autovacuum_freeze_max_age 表的年龄超过该值时需要强制启动AutoVacuum。 40亿 vacuum_freeze_table_age 表的年龄超过该值时需要执行紧急模式。 40亿 autovacuum_vacuum_threshold AutoVacuum进程进行VACUUM操作的阈值基数。 50 autovacuum_vacuum_scale_factor AutoVacuum因子, AutoVacuum进程进行VACUUM的比例因子。 0.2 autovacuum_analyze_threshold AutoVacuum进程进行analyze 操作的阈值基数。 50 autovacuum_analyze_scale_factor Autoanalyze因子,AutoVacuum进程进行analyze的比例因子。 0.1 父主题: VACUUM最佳实践
-
示例 数据准备。 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 gaussdb=# create database db1 encoding='UTF-8' LC_COLLATE='en_US.UTF-8' LC_CTYPE ='en_US.UTF-8' dbcompatibility = 'A'; CREATE DATABASE gaussdb=# \c db1 Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "db1" as user "omm". db1=# CREATE TABLE test_copy(id int, name text); CREATE TABLE db1=# insert into test_copy values(1, 'aaa'); INSERT 0 1 db1=# insert into test_copy values(2, e'bb\nb'); INSERT 0 1 db1=# insert into test_copy values(3, e'cc\tc'); INSERT 0 1 db1=# insert into test_copy(name) values('ddd'); INSERT 0 1 db1=# insert into test_copy values(5, e'ee\\e'); INSERT 0 1 db1=# insert into test_copy values(6, ','); INSERT 0 1 db1=# insert into test_copy values(7, '"'); INSERT 0 1 db1=# SELECT * FROM test_copy; id | name ----+----------- 1 | aaa 2 | bb + | b 3 | cc c | ddd 5 | ee\e 6 | , 7 | " (7 rows) 整表数据导出。 1 2 db1=# copy test_copy to '/home/xy/test.csv' delimiter ',' quote '"' escape '"' encoding 'UTF-8' csv; COPY 7 导出的CSV文件内容如下所示: 1 2 3 4 5 6 7 8 1,aaa 2,"bb b" 3,cc c ,ddd 5,ee\e 6,"," 7,"""" 数据导入。 db1=# truncate test_copy; TRUNCATE TABLE db1=# copy test_copy from '/home/xy/test.csv' delimiter ',' quote '"' escape '"' encoding 'UTF-8' csv; COPY 7 自定义数据集导出:导出test_copy中id不为空所有行的name列。 1 2 db1=# copy (select name from test_copy where id is not null) to '/home/xy/test.csv' delimiter ',' quote '"' escape '"' encoding 'UTF-8' csv; COPY 6 导出的CSV文件内容如下所示: 1 2 3 4 5 6 7 aaa "bb b" cc c ee\e "," """"
-
示例 示例:目标列中仅含索引列。 --数据准备。 gaussdb=# CREATE TABLE test2 (a int, b int); CREATE TABLE gaussdb=# CREATE INDEX test2_idx ON test2 (a, b); CREATE INDEX --随机插入1000条数据。 gaussdb=# INSERT INTO test2 VALUES(generate_series(1, 1000), generate_series(1, 1000)); INSERT 0 1000 --执行结果 gaussdb=# EXPLAIN SELECT a, b FROM test2 WHERE a = 10 AND b = 20; QUERY PLAN ---------------------------------------------------------------------------- [Bypass] Index Only Scan using test2_idx on test2 (cost=0.00..4.27 rows=1 width=8) Index Cond: ((a = 10) AND (b = 20)) (3 rows) --删除表。 gaussdb=# DROP TABLE test2; 上述示例中,Index Only Scan算子输出信息如下所示。 信息名称 含义 Index Only Scan 算子的名称。 Index Cond 该算子的过滤谓词,示例中的过滤条件为a列的值等于10并且b的值等于20。在查询执行时,满足这些条件的行会被包含在最终的结果集中。
-
算子说明 合并连接(Merge Join)是一种高效的连接方法,它依赖于排序操作。在进行合并连接时, GaussDB 会对两个表的连接字段进行排序,然后同步扫描两个表,寻找匹配的行。 Merge Join的时间复杂度为O(n+m), 其中n和m分别代表两个表的行数。然而,如果需要排序操作,这个排序操作的时间复杂度可能会达到max(O(logn), O(logm)), 这通常会比直接的Merge Join操作更加耗时。 在GaussDB中,优化器更倾向于选择Hash Join,即使需要连接的两张表已经经过排序。
-
示例 CREATE OR REPLACE FUNCTION func1 RETURN INT AS BEGIN RETURN 1; END; / CREATE FUNCTION CREATE OR REPLACE PACKAGE pkg IS PROCEDURE proc1(); END pkg; / CREATE PACKAGE CREATE OR REPLACE PACKAGE BODY pkg IS PROCEDURE proc1() AS BEGIN RAISE INFO 'proc1'; END; END pkg; / CREATE PACKAGE BODY -- 运行失效重编译高级包。 CALL pkg_util.gs_compile_schema('public', false, 1); -- 执行结果。 INFO: successful gs_compile_schema ------------------- (1 row) -- 查询状态。 SELECT proname,valid FROM pg_object obj JOIN pg_proc proc ON obj.object_oid = proc.oid AND proname = 'func1' AND propackageid = 0; proname | valid ---------+------- func1 | t (1 row) SELECT pkgname,object_type,valid FROM pg_object obj JOIN gs_package pkg ON obj.object_oid = pkg.oid AND pkgname = 'pkg'; pkgname | object_type | valid ---------+-------------+------- pkg | S | t pkg | B | t (2 rows) -- 执行函数。 SELECT func1(); func1 ------- 1 (1 row) CALL pkg.proc1(); INFO: proc1 proc1 ------- (1 row) -- 删除已创建的对象。 DROP FUNCTION func1; DROP FUNCTION DROP PACKAGE pkg; NOTICE: drop cascades to function public.proc1() DROP PACKAGE
-
算子说明 InitPlan是GaussDB的子计划的一部分。GaussDB中子查询计划可分为相关子计划和非相关子计划,相关子计划是指子查询依赖外部查询的行,不可独立于外部查询执行,非相关子计划则相反。在GaussDB中,SubPlan或InitPlan都可以叫做子计划,是相对于整个计划而言可以相对独立执行的部分,一般由不能提升的子计划生成。SubPlan主要是相关子计划生成的,InitPlan则是非相关子计划生成的。SubPlan是在主查询执行期间运行的,在主查询的每一行上重新执行一次,而InitPlan是在主查询执行之前运行的,结果是一次性的,它们在查询开始时计算一次,然后缓存起来在整个查询执行期间重用,所以InitPlan效率会更高。
-
如何评估VACUUM清理速率或需要清理多久 AUTOVACUUM的执行分为若干步骤,各个步骤的执行耗时各不相同,其流程简化如下: 图1 VACUUM流程图 从上图可以看出,VACUUM单表的耗时主要与以下几个因素相关:表页面数量、索引页面数量、全局索引个数、分区数量、IO管控时间。 单表VACUUM速度的估算公式如下: 非分区表 页面数量 = 数据页数量 + 索引页面数量 清理时间 = 页面数量 * 清理耗时 + 页面数量 / 评估代价 * 休眠时间 清理速度 = 死行总数 / 清理时间 分区表 页面数量= 数据页数量 + 普通索引页面数量 + (全局索引页面数量之和) * 分区数量 清理时间 = 页面数量 * 清理耗时 + 页面数量 / 评估代价 * 休眠时间 清理速度 = 死行总数 / 清理时间 可以通过以下SQL语句对单表的VACUUM速度进行评估: 非分区表: select ((heap_pages * prune_time) + (index_pages * prune_time) * nindexs + ((heap_pages+index_pages) * hit_percent * Vacuum_cost_page_hit + (heap_pages+index_pages) * miss_percent * Vacuum_cost_page_miss + (heap_pages+index_pages) * dirty_percent * Vacuum_cost_page_dirty) * Vacuum_cost_delay / Vacuum_cost_limit) as totaltime, deadtuples/totaltime as speed from (select relpages as heap_pages, b.n_dead_tup as deadtuples, b.n_dead_tup/(reltuples+b.n_dead_tup +1) as dirty_percent from pg_class a, pg_stat_all_tables b where a.relname = 't1' and b.relname = a.relname) as abc , (select sum(relpages) as index_pages, count(*) as nindexs from pg_class where relname in (select indexname from pg_indexes where tablename = 't1') and relkind = 'i') as bcd , (select 0.07 as prune_time, 0.05 as miss_percent , 0.95 as hit_percent , 1 as Vacuum_cost_page_hit,10 as Vacuum_cost_page_miss , 200 as Vacuum_cost_limit ,20 as Vacuum_cost_delay , 20 as Vacuum_cost_page_dirty); 分区表: select ((heap_pages * prune_time) + (local_index_pages * prune_time) * nlocalindexs + (gpi_index_pages * prune_time) * npartitions * ngpiindexs + ((heap_pages + local_index_pages + gpi_index_pages) * hit_percent * Vacuum_cost_page_hit + (heap_pages + local_index_pages + gpi_index_pages) * miss_percent * Vacuum_cost_page_miss + (heap_pages + local_index_pages + gpi_index_pages) * dirty_percent * Vacuum_cost_page_dirty) * Vacuum_cost_delay / Vacuum_cost_limit) as total_time, dead_tuples/total_time as speed from (select relpages as heap_pages, b.n_dead_tup as dead_tuples, b.n_dead_tup/(reltuples+b.n_dead_tup+1) as dirty_percent from pg_class a, pg_stat_all_tables b where a.relname = 't1' and b.relname = a.relname) as abc , (select sum(relpages) as local_index_pages, count(*) as nlocalindexs from pg_class where oid in (select indexrelid from pg_index where indrelid=(select oid from pg_class where relname = 't1')) and relkind='i') as bcd , (select sum(relpages) as gpi_index_pages, count(*) as ngpiindexs from pg_class where oid in (select indexrelid from pg_index where indrelid=(select oid from pg_class where relname = 't1')) and relkind='I') as fenqu , (select count(*) as npartitions from pg_partition where parentid in (select oid from pg_class where relname = 't1'))as qqq ,(select 0.07 as prune_time, 0.05 as miss_percent , 0.95 as hit_percent , 1 as Vacuum_cost_page_hit,10 as Vacuum_cost_page_miss , 200 as Vacuum_cost_limit ,20 as Vacuum_cost_delay , 20 as Vacuum_cost_page_dirty) as yyy; 公式中prune_time为清理一个tuple需要的时间,这个值与硬件I/O能力相关,在SSD硬盘可以按照0.07ms进行估算。对于IO能力更强的NVMe硬盘,可以适当降低该值;而对于I/O能力较弱的机械硬盘,则需要适当提高; miss_percent和hit_percent是缓存命中情况。在刚导入数据的场景,缓存命中较低;在系统稳定后,可以按照miss 0.5和hit 0.95进行估算; vacuum_cost_delay是GUC参数autovacuum_vacuum_cost_delay的值。 除此之外,在当前版本中,我们引入了如下的进度分析视图,可以获取当前的AUTOVACUUM进度以及效率。 gaussdb=# select * from gs_stat_progress_vacuum(140123447490304); pid | dataname | relid | relname | phase | detail -----------------+----------+-------+---------+---------------+--------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------- 140123447490304 | postgres | 24602 | t1 | scanning heap | vacuum db "postgres" starts at 2025-02-09 14:10:17.863838-05, vacuumed 12/242 relations, current r elation "t1"; heap: scanned 55298/73216 blocks, skipped 0 blocks; info: found 0 dead tuples, already run 610s, delay 608s. (1 row) 父主题: 常见问题
-
示例 数据准备。 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 gaussdb=# create database db1 encoding='UTF-8' LC_COLLATE='en_US.UTF-8' LC_CTYPE ='en_US.UTF-8' dbcompatibility = 'A'; CREATE DATABASE gaussdb=# \c db1 Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "db1" as user "omm". db1=# CREATE TABLE test_copy(id int, name text); CREATE TABLE db1=# insert into test_copy values(1, 'aaa'); INSERT 0 1 db1=# insert into test_copy values(2, 'bb"b'); INSERT 0 1 db1=# insert into test_copy values(3, 'cc c'); INSERT 0 1 db1=# insert into test_copy values('', e'dd\td'); INSERT 0 1 db1=# insert into test_copy values('5', e'ee\e'); INSERT 0 1 db1=# select * from test_copy; id | name ----+----------- 1 | aaa 2 | bb"b 3 | cc c | dd d 5 | eee (5 rows) 数据导出。 1 2 db1=# COPY test_copy TO '/home/xy/test.fixed' encoding 'UTF-8' FIXED FORMATTER(id(0,1), name(1,5)); COPY 5 导出数据文件内容如下所示: 1 2 3 4 5 1 aaa 2 bb"b 3cc c dd d 5 eee 数据导入。 db1=# truncate test_copy; TRUNCATE TABLE db1=# copy test_copy from '/home/xy/test.fixed' encoding 'UTF-8' FIXED FORMATTER(id(0,1), name(1,5)); COPY 5
-
算子说明 Stream是GaussDB的SMP(对称多处理)中使用的一种技术,SMP采用多线程并行算法,在算子内并行执行,充分利用现代服务器单机多核的特点,提高执行效率。SMP分为计划生成与执行两部分: SMP计划生成。一阶段计划生成:在路径生成阶段,加入并行路径,最终根据代价,决定所选择的计划。两阶段计划生成:第一步生成原有的串行计划,第二步再将串行计划改造成适应并行的计划 。 SMP执行过程。为并行执行线程之间进行数据分配、交换和汇总。 SMP的执行依赖Stream算子,不同类型的Stream算子配合完成SMP的执行过程。Stream算子的集中式类型主要分为: Local Gather :DN内数据分配,实现DN内部并行线程的数据汇总。 Local Redistribute :DN内数据分配,在DN内部各线程之间,按照分布键进行数据重分布。 Local Broadcast : DN内数据分配,将数据广播到DN内部的每个线程。 Local RoundRobin :DN内数据分配,在DN内部各线程之间实现数据轮询分发。 GaussDB通过broadcast与redistribute对数据进行多线程处理,然后通过gather汇总数据并处理返回。
-
示例 示例:调用系统函数。 gaussdb=# EXPLAIN SELECT * FROM generate_series(2,4); QUERY PLAN ------------------------------------------------------------------------ Function Scan on generate_series (cost=0.00..10.00 rows=1000 width=4) (1 row) 上述示例中,Function Scan算子输出信息如下所示。 信息名称 含义 Function Scan 算子的名称。
-
算子说明 Sample Scan是一种扫描表的方式,它可以在查询过程中随机地从表中抽取一部分数据进行查询,而不是扫描整个表。Sample Scan配合TABLESAMPLE关键字使用,使用方式为[ TABLESAMPLE sampling_method ( argument [, ...] ) [ REPEATABLE ( seed ) ] ]。这种技术通常用于大型表或者需要随机抽样的查询场景,可以提高查询效率。
-
示例 示例:采样查询 --数据准备。 gaussdb=# CREATE TABLE t1 (c1 number, c2 number, c3 number); CREATE TABLE gaussdb=# INSERT INTO t1 VALUES (generate_series(1,100), 2, 3); INSERT 0 100 --执行结果。 gaussdb=# EXPLAIN SELECT c1 FROM t1 tablesample system(10); QUERY PLAN ---------------------------------------------------- Sample Scan on t1 (cost=0.00..272.00 rows=10000 width=6) Sampling: system (10::double precision) (2 rows) --删除。 gaussdb=# DROP TABLE t1; 上述示例中,Sample Scan算子输出信息如下所示。 信息名称 含义 Sample Scan 算子的名称。 Sampling 算子采样的方式,示例中采用system作为采样方法,采样的比例为10%。
-
失效重编译特性函数 gs_set_object_invalid()/gs_set_object_invalid(schema, objname, objtype) 描述:将PACKAGE和FUNCTION在pg_object中的状态置为false,同时级联将依赖PACKAGE和FUNCTION的对象状态置为false。调用该函数的用户需要具有SYSADMIN权限。 参数:该函数为重载函数。当无入参时,将当前DATABASE内的PACKAGE和FUNCTION对象置为失效。当指定schema、objname、objtype三个参数时可将当前DATABASE内的PACKAGE和FUNCTION对象在pg_object中的状态置为false。其中:schema为对象所属的schema名称;objname为对象名称;objtype为对象类型,对象为package类型时值为“package”,对象为函数或存储过程时值为“function”。 需要将PACKAGE和FUNCTION和依赖PACKAGE和FUNCTION的对象状态置为失效时可以使用该函数。 仅系统管理员可以调用函数。 示例: 该函数不返回失效结果,可通过pg_object系统表查询失效结果,对象有效时查找到对应的valid状态为true,对象失效后对应的valid状态为false。 gs_set_plsql_invalid所属的Schema为pg_catalog,但不指定Schema也可调用该函数。 -- 创建一个包pkg1,pkg2和函数f3,查询pg_object信息,状态为valid。 SET enable_force_create_obj=on; SET SET ddl_invalid_mode=invalid; SET CREATE SCHEMA testInvalidate; CREATE SCHEMA SET CURRENT_SCHEMA TO testInvalidate; SET CREATE OR REPLACE PACKAGE pkg1 AS var1 VARCHAR; FUNCTION f1() RETURN VARCHAR; END pkg1; / CREATE PACKAGE CREATE OR REPLACE PACKAGE BODY pkg1 AS FUNCTION f1() RETURN VARCHAR IS BEGIN var1 := '2'; RETURN var1; END; END pkg1; / CREATE PACKAGE BODY CREATE OR REPLACE PACKAGE pkg2 AS var1 pkg1.var1%TYPE; FUNCTION f2() RETURN VARCHAR; END pkg2; / CREATE PACKAGE CREATE OR REPLACE PACKAGE BODY pkg2 AS FUNCTION f2() RETURN VARCHAR IS BEGIN var1 := '2'; RETURN var1; END; END pkg2; / CREATE PACKAGE BODY CREATE OR REPLACE FUNCTION f3() RETURN VARCHAR IS DECLARE var2 VARCHAR := 'li2'; BEGIN var2='22'; RETURN var2; END / CREATE FUNCTION SELECT pkg1.f1(); f1 ---- 2 (1 row) SELECT pkg2.f2(); f2 ---- 2 (1 row) SELECT f3(); f3 ---- 22 (1 row) -- 调用函数,指定schema、函数名、类型即可将pkg1和pkg2失效,再次查询pg_object,pkg1和pkg2对应的valid为false。 SELECT gs_set_object_invalid('testinvalidate','pkg1','package'); set_object_invalid ------------------------- (1 row) -- 如果要失效function,参数如下所示,查询pg_object,f3对应的valid为false。 SELECT gs_set_object_invalid('testinvalidate','f3','function'); set_object_invalid ------------------------- (1 row) -- 调用时没有入参,则将失效所有缓存对象。 SELECT gs_set_object_invalid(); set_object_invalid ------------------------- (1 row) 父主题: 失效重编译
-
算子说明 Bitmap Index Scan,位图索引扫描,该算子的作用为用索引扫描的方式,将过滤出的符合条件的元组的tid形成一张位图并向上返回。多个表扫描出的多个结果位图之间可再做 BitmapAnd或者BitmapOr操作,相比于Index Scan还需要对表与表之间筛选出来的元组进行比对,可减少过滤时间。 Bitmap Heap Scan,位图堆扫描,该算子的下层通常有Bitmap Index Scan,作用为通过扫描下层算子返回的位图(bitmap)来判断哪些元组符合条件并取出然后向上返回。当优化器通过代价估算选择采用Bitmap Index Scan的扫描方式,且需要返回符合条件的元组时,通常上层会配套使用Bitmap Heap Scan来通过扫描位图过滤选取元组并返回。 BitmapOr,位图或操作,该算子作用为将下层的bitmap进行或操作,返回操作后的位图。 BitmapAnd,位图与操作,该算子作用为将下层的bitmap进行与操作,返回操作后的位图。 使用Bitmap Index Scan和Bitmap Heap Scan的前提条件为:GUC参数enable_bitmapscan设置为on。
-
示例 --设置如下参数: SET ddl_invalid_mode='invalid'; SET CREATE TYPE type1 AS (f1 int, f2 text); CREATE TYPE CREATE OR REPLACE FUNCTION func1(var type1) RETURN varchar IS BEGIN RETURN NULL; END; / CREATE FUNCTION SELECT proname,valid FROM pg_object obj JOIN pg_proc proc ON obj.object_oid = proc.oid AND proname = 'func1' AND propackageid = 0; proname | valid ---------+------- func1 | t (1 row) DROP TYPE type1; DROP TYPE -- 查询状态。 SELECT proname,valid FROM pg_object obj JOIN pg_proc proc ON obj.object_oid = proc.oid AND proname = 'func1' AND propackageid = 0; proname | valid ---------+------- func1 | f (1 row) -- 函数未被删除,函数依然存在。 SELECT proname FROM pg_proc WHERE proname = 'func1' AND propackageid = 0; proname --------- func1 (1 row) -- 删除已创建的对象。 DROP FUNCTION func1; DROP FUNCTION
-
算子说明 行号扫描,该算子主要利用行号(ctid)过滤元组并返回。ASTORE场景下,数据按行存储在HEAP PAGE中,在B-tree 索引中除了存储字段的value,还会存储对应的行号,因此GaussDB中支持通过行号进行快速检索。 行号的写法为: (page_number,item_number) -- page_number从0开始编号,item_number从1开始编号 通过给定的ctid值找到在磁盘或缓存中对应的元组。
-
并行导入命令示例 1 2 3 4 5 6 7 8 9 --CSV格式的导入命令 \COPY {data_destination} from '/path/export.txt' encoding {file_encoding} parallel {parallel_num} csv; --FIXED格式的导入命令 \COPY {data_destination} from '/path/export.txt' encoding {file_encoding} parallel {parallel_num} fixed; --TEXT格式的导入命令 \COPY {data_destination} from '/path/export.txt' encoding {file_encoding} parallel {parallel_num}; --data_destination 只能是一个表名称 --file_encoding 表示该二进制文件导出时指定的编码格式 --parallel_num 表示数据导入时的客户端数量,在集群资源较为充足时建议此值为8。
-
\COPY命令示例 \COPY的导出命令与COPY命令的区别为把命令中的COPY换成\COPY即可,此处提供一个简单的CSV格式COPY导出命令转换为\COPY导出命令的示例: 1 2 3 4 5 6 --COPY命令 COPY {data_source} to '/path/export.csv' encoding {server_encoding} csv; COPY {data_source} from '/path/export.csv' encoding {server_encoding} csv; --对应的\COPY命令 \COPY {data_source} to '/path/export.csv' encoding {server_encoding} csv; \COPY {data_source} from '/path/export.csv' encoding {server_encoding} csv;
-
数据存在错误时需要支持容错的导入场景 当使用COPY或 \COPY命令执行数据导入时,若检测到数据异常,系统将默认终止导入任务。为此,GaussDB提供了两种容错机制:智能修正模式与严格校验模式。建议优先采用严格校验模式(Level1容错等级),该模式可在保证数据完整性的前提下跳过异常记录并且不会对导入性能影响造成太大的影响。详细信息可参考数据存在错误时的导入操作指南。 以下是严格校验模式Level1容错等级的导入命令: 1 2 3 4 5 6 7 8 9 10 11 --CSV格式 \COPY {data_destination} from '/path/export.txt' log errors reject limit '{limit_num}' encoding {file_encoding} CSV; --BINARY格式 \COPY {data_destination} from '/path/export.txt' log errors reject limit '{limit_num}' encoding {file_encoding} BINARY; --FIXED格式 \COPY {data_destination} from '/path/export.txt' log errors reject limit '{limit_num}' encoding {file_encoding} FIXED; --TEXT格式 \COPY {data_destination} from '/path/export.txt' log errors reject limit '{limit_num}' encoding {file_encoding}; --data_destination 只能是一个表名称 --file_encoding 表示该二进制文件导出时指定的编码格式 --limit_num 表示数据导入时容错行数的上限,一旦此COPY FROM语句错误数据超过选项指定条数,则会按照原有机制报错。 如果是普通用户期望使用该特性时,需要对该用户赋权容错特性两张系统表的相关权限,具体SQL如下: 1 2 grant insert,select,delete on pgxc_copy_error_log to {user_name}; grant insert,select,delete on gs_copy_summary to {user_name}; 父主题: 典型场景
-
网络隔离 SFS Turbo仅支持从绑定的VPC网络中直接访问SFS Turbo文件系统数据。 SFS Turbo支持通过安全组规则,限制允许访问SFS Turbo文件系统数据的客户端IP地址。 SFS Turbo支持配置IP鉴权规则,根据不同的IP或网段授予不同的权限。 为了更好地使用这些功能,建议 在创建SFS Turbo文件系统前,在VPC中规划不同的子网,为SFS Turbo文件系统规划一个独立的子网,为不同权限的客户端规划不同的子网,详情请参考“创建虚拟私有云和子网”。 在创建SFS Turbo文件系统前,规划独立的安全组,入方向仅放通访问SFS Turbo文件系统所需的端口,源IP地址为客户端规划的子网。不同规格的SFS Turbo文件系统所需端口不同,详情请参考“创建SFS Turbo文件系统”。 在创建SFS Turbo文件系统时,选择VPC中为SFS Turbo文件系统规划的子网,选择为SFS Turbo文件系统规划的安全组,详情请参考“创建SFS Turbo文件系统”。 在创建SFS Turbo文件系统后,配置IP鉴权规则,根据不同的IP或网段授予不同的权限,详情请参考“管理SFS Turbo文件系统权限”。
-
数据备份 当发生病毒入侵、人为误删除、数据丢失等事件时,可以使用SFS Turbo备份数据创建新的文件系统,创建后的文件系统原始数据将会和SFS Turbo备份数据内容相同。 创建SFS Turbo文件系统时,建议开启备份,详情请参考“创建SFS Turbo文件系统”。 SFS Turbo文件系统如果未绑定SFS Turbo备份存储库,建议绑定SFS Turbo备份存储库,详情请参考“绑定存储库的资源”。 SFS Turbo文件系统绑定的SFS Turbo备份存储库,如果未绑定备份策略,建议绑定备份策略,详情请参考“绑定策略至存储库”。 SFS Turbo文件系统绑定的SFS Turbo备份存储库绑定的备份策略,如果未启用,建议启用备份策略,详情请参考“修改策略”。
-
返回结果 表2 返回结果 参数类型 描述 表3 说明: 该接口返回是一个Promise类型,需要使用Promise、async/await语法处理。 参数解释: 接口返回信息,详见表3。 表3 Response 参数名称 参数类型 描述 CommonMsg ICommonMsg 参数解释: 接口调用完成后的公共信息,包含HTTP状态码,操作失败的错误码等,详见ICommonMsg。 InterfaceResult 表5 参数解释: 操作成功后的结果数据,详见表5。 约束限制: 当Status大于300时为空。 表4 ICommonMsg 参数名称 参数类型 描述 Status number 参数解释: OBS服务端返回的HTTP状态码。 取值范围: 状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。完整的状态码列表请参见状态码。 Code string 参数解释: OBS服务端返回的错误码。 Message string 参数解释: OBS服务端返回的错误描述。 HostId string 参数解释: OBS服务端返回的请求服务端ID。 RequestId string 参数解释: OBS服务端返回的请求ID。 Id2 string 参数解释: OBS服务端返回的请求ID2。 Indicator string 参数解释: OBS服务端返回的详细错误码。 表5 GetObjectOutput 参数名称 参数类型 描述 RequestId string 参数解释: OBS服务端返回的请求ID。 DeleteMarker string 参数解释: 标识删除的对象是否是删除标记。 LastModified string 参数解释: 对象的最近一次修改时间。 ContentLength string 参数解释: 对象数据的长度。 CacheControl string 参数解释: 响应中的Cache-Control头。 ContentDisposition string 参数解释: 响应中的Content-Disposition头。 ContentEncoding string 参数解释: 响应中的Content-Encoding头 ContentLanguage string 参数解释: 响应中的Content-Language头 ContentType string 参数解释: 对象的MIME类型。 Expires string 参数解释: 响应中的Expires头。 ETag string 参数解释: 对象的ETag值。 VersionId string 参数解释: 对象的版本号。 WebsiteRedirectLocation string 参数解释: 当桶设置了Website配置,该参数指明对象的重定向地址。 StorageClass string 参数解释: 对象的存储类型,当对象存储类型是标准存储时,该值为空。 Restore string 参数解释: 归档存储类型对象的恢复状态。 Expiration string 参数解释: 对象的详细过期信息。 Content string | stream.Readable 参数解释: 对象的内容。当设置了SaveAsFile时该值为空;当设置了SaveAsStream且为true时该值为stream.Readable对象;当SaveAsFile和SaveAsStream都未设置时为String对象。 Metadata object 参数解释: 对象自定义元数据。需要在桶的CORS配置中增加允许响应中可返回的附加头域。例如,新增x-amz-meta-property1以获取自定义元数据property1。
-
接口约束 您必须是桶拥有者或拥有下载对象的权限,才能下载对象。建议使用 IAM 或桶策略进行授权,如果使用IAM则需授予obs:object:GetObject权限,如果使用桶策略则需授予GetObject权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、配置对象策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。 对于存储类别为归档存储或深度归档存储的对象,需要确认对象的状态为“已恢复”才能对其进行下载。
共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