文档库 最新最全的文档下载
当前位置:文档库 › PostgreSQL数据库配置参数详解

PostgreSQL数据库配置参数详解

PostgreSQL数据库配置参数详解
PostgreSQL数据库配置参数详解

十章数据库参数

PostgresSQL提供了许多数据库配置参数,本章将介绍每个参数的作用和如何配置每一个参数。

10.1 如何设置数据库参数

所有的参数的名称都是不区分大小写的。每个参数的取值是布尔型、整型、浮点型和字符串型这四种类型中的一个,分别用boolean、integer、floating point和string表示。布尔型的值可以写成ON、OFF、TRUE、FALSE、YES、NO、1和0,而且不区分大小写。

有些参数用来配置内存大小和时间值。内存大小的单位可以是KB、MB和GB。时间的单位可以是毫秒、秒、分钟、小时和天。用ms表示毫秒,用s表示秒,用min表示分钟,用h表示小时,用d表示天。表示内存大小和时间值的参数参数都有一个默认的单位,如果用户在设置参数的值时没有指定单位,则以参数默认的单位为准。例如,参数shared_buffers 表示数据缓冲区的大小,它的默认单位是数据块的个数,如果把它的值设成8,因为每个数据块的大小是8KB,则数据缓冲区的大小是8*8=64KB,如果将它的值设成128MB,则数据缓冲区的大小是128MB。参数vacuum_cost_delay 的默认单位是毫秒,如果把它的值设成10,则它的值是10毫秒,如果把它的值设成100s,则它的值是100秒。

所有的参数都放在文件postgresql.conf中,下面是一个文件实例:

#这是注释

log_connections = yes

log_destination = 'syslog'

search_path = '"$user", public'

每一行只能指定一个参数,空格和空白行都会被忽略。“ #”表示注释,注释信息不用单独占一行,可以出现在配置文件的任何地方。如果参数的值不是简单的标识符和数字,应该用单引号引起来。如果参数的值中有单引号,应该写两个单引号,或者在单引号前面加一个反斜杠。

一个配置文件也可以包含其它配置文件,使用include指令能够达到这个目的,例如,假设postgresql.conf文件中有下面一行:

include ‘my.confg’

文件my.config中的配置信息也会被数据库读入。include指令指定的配置文件也可以用include指令再包含其它配置文件。如果include指令中指定的文件名不是绝对路径,数据库会在postgresql.conf文件所在的目录下查找这个文件。

用户也可以在数据库启动以后修改postgresql.conf配置文件,使用命令pg_ctl reload来通知数据库重新读取配置文件。注意,有些参数在数据库启动以后,不能被修改,只有重新启动数据库以后,新的参数值才能生效。另外一些参数可以在数据库运行过程中被修改而且新的值可以立即生效。所以数据库在运行过程中重新读取参数配置文件以后,不是所有的参数都会被赋给新的值。

用户可以在自己建立的会话中执行命令SET修改某些配置参数的值(注意不是全部参数),例如:

SET ENABLE_SEQSCAN TO OFF;

另外,有些参数只有数据库超级用户才能使用SET命令修改它们。用户可以在psql中执行命令show来查看所有的数据库参数的当前值。例如:

(1)show all; --查看所有数据库参数的值

(2)show search_path; --查看参数search_path的值

10.2 连接与认证

10.2.1 连接设置

listen_addresses (string)

这个参数只有在启动数据库时,才能被设置。它指定数据库用来监听客户端连接的TCP/IP 地址。默认是值是* ,表示数据库在启动以后将在运行数据的机器上的所有的IP地址上监听用户请求(如果机器只有一个网卡,只有一个IP地址,有多个网卡的机器有多个IP地址)。可以写成机器的名字,也可以写成IP地址,不同的值用逗号分开,例如,’server01’, ’140.87.171.49, 140.87.171.21’。如果被设成localhost,表示数据库只能接受本地的客户端连接请求,不能接受远程的客户端连接请求。

port (integer)

这个参数只有在启动数据库时,才能被设置。它指定数据库监听户端连接的TCP端口。默认值是5432。

max_connections (integer)

这个参数只有在启动数据库时,才能被设置。它决定数据库可以同时建立的最大的客户端连接的数目。默认值是100。

superuser_reserved_connections (integer)

这个参数只有在启动数据库时,才能被设置。它表示预留给超级用户的数据库连接数目。它的值必须小于max_connections。普通用户可以在数据库中建立的最大的并发连接的数目是max_connections- superuser_reserved_connections,默认值是3。

unix_socket_group (string)

这个参数只有在启动数据库时,才能被设置。设置Unix-domain socket所在的操作系统用户组。默认值是空串,用启动数据库的操作系统用户所在的组作为Unix-domain socket的用户组。

unix_socket_permissions (integer)

这个参数只有在启动数据库时,才能被设置。它设置Unix-domain socket的访问权限,格式与操作系统的文件访问权限是一样的。默认值是0770,表示任何操作系统用户都能访问Unix-domain socket。可以设为0770(所有Unix-domain socket文件的所有者所在的组包含的用户都能访问)和0700(只有Unix-domain socket文件的所有者才能访问)。对于Unix-domain socket,只有写权限才有意义,读和执行权限是没有意义的。

tcp_keepalives_idle (integer)

这个参数可以在任何时候被设置。默认值是0,意思是使用操作系统的默认值。它设置TCP 套接字的TCP_KEEPIDLE属性。这个参数对于通过Unix-domain socket建立的数据库连接没有任何影响。

tcp_keepalives_interval (integer)

这个参数可以在任何时候被设置。默认值是0,意思是使用操作系统的默认值。它设置TCP 套接字的TCP_KEEPINTVL属性。这个参数对于通过Unix-domain socket建立的数据库连接没有任何影响。

tcp_keepalives_count (integer)

这个参数可以在任何时候被设置。默认值是0,意思是使用操作系统的默认值。它设置TCP 套接字的TCP_KEEPCNT属性。这个参数对于通过Unix-domain socket建立的数据库连接没有任何影响。

10.2.2. 安全与认证

authentication_timeout (integer)

这个参数只能在postgresql.conf文件中被设置,它指定一个时间长度,在这个时间长度内,必须完成客户端认证操作,否则客户端连接请求将被拒绝。它可以阻止某些客户端进行认证时长时间占用数据库连接。单位是秒,默认值是60。

ssl (boolean)

这个参数只有在启动数据库时,才能被设置。决定数据库是否接受SSL连接。默认值是off。

ssl_ciphers (string)

指定可以使用的SSL加密算法。查看操作系统关于openssl的用户手册可以得到完整的加密算法列表(执行命令openssl ciphers –v也可以得到)。

10.3 资源消耗

10.3.1 内存

shared_buffers (integer)

这个参数只有在启动数据库时,才能被设置。它表示数据缓冲区中的数据块的个数,每个数据块的大小是8KB。数据缓冲区位于数据库的共享内存中,它越大越好,不能小于128KB。默认值是1024。

temp_buffers (integer)

这个参数可以在任何时候被设置。默认值是8MB。它决定存放临时表的数据缓冲区中的数据块的个数,每个数据块的大小是8KB。临时表缓冲区存放在每个数据库进程的私有内存中,而不是存放在数据库的共享内存中。默认值是1024。

max_prepared_transactions (integer)

这个参数只有在启动数据库时,才能被设置。它决定能够同时处于prepared状态的事务的最大数目(参考PREPARE TRANSACTION命令)。如果它的值被设为0。则将数据库将关闭prepared事务的特性。它的值通常应该和max_connections的值一样大。默认值是5。

work_mem (integer)

这个参数可以在任何时候被设置。它决定数据库的排序操作和哈希表使用的内存缓冲区的大小。如何work_mem指定的内存被耗尽,数据库将使用磁盘文件进行完成操作,速度会慢很多。ORDER BY、DISTINCT和merge连接会使用排序操作。哈希表在Hash连接、hash 聚集函数和用哈希表来处理IN谓词中的子查询中被使用。单位是KB,默认值是1024。

maintenance_work_mem (integer)

这个参数可以在任何时候被设置。它决定数据库的维护操作使用的内存空间的大小。数据库的维护操作包括V ACUUM、CREATE INDEX和ALTER TABLE ADD FOREIGN KEY等操作。maintenance_work_mem的值如果比较大,通常可以缩短V ACUUM数据库和从dump 文件中恢复数据库需要的时间。maintenance_work_mem存放在每个数据库进程的私有内存中,而不是存放在数据库的共享内存中。单位是KB,默认值是16384。

max_stack_depth (integer)

这个参数可以在任何时候被设置,但只有数据库超级用户才能修改它。它决定一个数据库进程在运行时的STACK所占的空间的最大值。数据库进程在运行时,会自动检查自己的STACK大小是否超过max_stack_depth,如果超过,会自动终止当前事务。这个值应该比操作系统设置的进程STACK的大小的上限小1MB。使用操作系统命令“ulimit –s“可以得到操作系统设置的进程STACK的最大值。单位是KB,默认值是100。

10.3.2 Free Space Map

数据库的所有可用空间信息都存放在一个叫free space map (FSM)的结构中,它记载数据文件中每个数据块的可用空间的大小。FSM中没有记录的数据块,即使有可用空间,也不会系统使用。系统如果需要新的物理存储空间,会首先在FSM中查找,如果FSM中没有一个数据页有足够的可用空间,系统就会自动扩展数据文件。所以,FSM如果太小,会导致系统频繁地扩展数据文件,浪费物理存储空间。命令V ACUUM VERBOSE在执行结束以后,会提示当前的FSM设置是否满足需要,如果FSM的参数值太小,它会提示增大参数。

FSM存放在数据库的共享内存中,由于物理内存的限制,FSM不可能跟踪数据库的所有的数据文件的所有数据块的可用空间信息,只能跟踪一部分数据块的可用空间信息。

max_fsm_relations (integer)

这个参数只有在启动数据库时,才能被设置。默认值是1000。它决定FSM跟踪的表和索引的个数的上限。每个表和索引在FSM中占7个字节的存储空间。

max_fsm_pages (integer)

这个参数只有在启动数据库时,才能被设置。它决定FSM中跟踪的数据块的个数的上限。initdb在创建数据库集群时会根据物理内存的大小决定它的值。每个数据块在fsm中占6个字节的存储空间。它的大小不能小于16 * max_fsm_relations。默认值是20000。

10.3.3 内核资源

max_files_per_process (integer)

这个参数只有在启动数据库时,才能被设置。他设定每个数据库进程能够打开的文件的数目。默认值是1000。

shared_preload_libraries (string)

这个参数只有在启动数据库时,才能被设置。它设置数据库在启动时要加载的操作系统共享库文件。如果有多个库文件,名字用逗号分开。如果数据库在启动时未找到shared_preload_libraries指定的某个库文件,数据库将无法启动。默认值为空串。

10.3.4 垃圾收集

执行V ACUUM 和ANALYZE命令时,因为它们会消耗大量的CPU与IO资源,而且执行一次要花很长时间,这样会干扰系统执行应用程序发出的SQL命令。为了解决这个问题,V ACUUM 和ANAL YZE命令执行一段时间后,系统会暂时终止它们的运行,过一段时间后再继续执行这两个命令。这个特性在默认的情况下是关闭的。将参数vacuum_cost_delay设为一个非零的正整数就可以打开这个特性。

用户通常只需要设置参数vacuum_cost_delay和vacuum_cost_limit,其它的参数使用默认值即可。V ACUUM 和ANAL YZE命令在执行过程中,系统会计算它们执行消耗的资源,资源的数量用一个正整数表示,如果资源的数量超过vacuum_cost_limit,则执行命令的进程会进入睡眠状态,睡眠的时间长度是是vacuum_cost_delay。vacuum_cost_limit的值越大,V ACUUM 和ANAL YZE命令在执行的过程中,睡眠的次数就越少,反之,vacuum_cost_limit 的值越小,V ACUUM 和ANAL YZE命令在执行的过程中,睡眠的次数就越多。

vacuum_cost_delay (integer)

这个参数可以在任何时候被设置。默认值是0。它决定执行VACUUM 和ANAL YZE命令的进程的睡眠时间。单位是微秒。它的值最好是10的整数,如果不是10的整数,系统会自动将它设为比该值大的并且最接近该值的是10 的倍数的整数。如果值是0,V ACUUM 和ANAL YZE命令在执行过程中不会主动进入睡眠状态,会一直执行下去直到结束。

vacuum_cost_page_hit (integer)

这个参数可以在任何时候被设置。默认值是1。

vacuum_cost_page_miss (integer)

这个参数可以在任何时候被设置。默认值是10。

vacuum_cost_page_dirty (integer)

这个参数可以在任何时候被设置。默认值是20。

vacuum_cost_limit (integer)

这个参数可以在任何时候被设置。默认值是200。

10.3.5 后台写数据库进程

后台写数据库进程负责将数据缓冲区中的被修改的数据块(又叫脏数据块)写回到数据库物理文件中。

bgwriter_delay (integer)

这个参数只能在文件postgresql.conf中设置。它决定后台写数据库进程的睡眠时间。后台写数据库进程每次完成写数据到物理文件中的任务以后,就会睡眠bgwriter_delay指定的时间。bgwriter_delay的值应该是10的倍数,如果用户设定的值不是10的倍数,数据库会自动将参数的值设为比用户指定的值大的最接近用户指定的值的同时是10的倍数的值。单位是毫秒,默认值是200。

bgwriter_lru_maxpages (integer)

这个参数只能在文件postgresql.conf中设置。默认值是100。后台写数据库进程每次写脏数据块时,写到外部文件中的脏数据块的个数不能超过bgwriter_lru_maxpages指定的值。例如,如果它的值是500,则后台写数据库进程每次写到物理文件的数据页的个数不能超过500,若超过,进程将进入睡眠状态,等下次醒来再执行写物理文件的任务。如果它的值被设为0, 后台写数据库进程将不会写任何物理文件(但还会执行检查点操作)。

bgwriter_lru_multiplier (floating point)

这个参数只能在文件postgresql.conf中设置。默认值是2.0。它决定后台写数据库进程每次写物理文件时,写到外部文件中的脏数据块的个数(不能超过bgwriter_lru_maxpages指定的值)。一般使用默认值即可,不需要修改这个参数。这个参数的值越大,后台写数据库进

程每次写的脏数据块的个数就越多。

10.4 事务日志

full_page_writes (boolean)

这个参数只能在postgresql.conf文件中被设置。默认值是on。打开这个参数,可以提高数据库的可靠性,减少数据丢失的概率,但是会产生过多的事务日志,降低数据库的性能。

wal_buffers (integer)

这个参数只有在启动数据库时,才能被设置。默认值是8。它指定事务日志缓冲区中包含的数据块的个数,每个数据块的大小是8KB,所以默认的事务日志缓冲区的大小是8*8=64KB。事务日志缓冲区位于数据库的共享内存中。

wal_writer_delay (integer)

这个参数只能在postgresql.conf文件中被设置。它决定写事务日志进程的睡眠时间。W AL 进程每次在完成写事务日志的任务后,就会睡眠wal_writer_delay指定的时间,然后醒来,继续将新产生的事务日志从缓冲区写到WAL文件中。单位是毫秒(millisecond),默认值是200。

commit_delay (integer)

这个参数可以在任何时候被设置。它设定事务在发出提交命令以后的睡眠时间,只有在睡眠了commit_delay指定的时间以后,事务产生的事务日志才会被写到事务日志文件中,事务才能真正地提交。增大这个参数会增加用户的等待时间,但是可以让多个事务被同时提交,提高系统的性能。如果数据库中的负载比较高,而且大部分事务都是更新类型的事务,可以考虑增大这个参数的值。下面的参数commit_siblings会影响commit_delay是否生效。默认值是0,单位是微秒(microsecond)。

commit_siblings (integer)

这个参数可以在任何时候被设置。这个参数的值决定参数commit_delay是否生效。假设commit_siblings的值是5,如果一个事务发出一个提交请求,此时,如果数据库中正在执

行的事务的个数大于或等于5,那么该事务将睡眠commit_delay指定的时间。如果数据库中正在执行的事务的个数小于5,这个事务将直接提交。默认值是5。

10.5 检查点

checkpoint_segments (integer)

这个参数只能在postgresql.conf文件中被设置。默认值是3。它影响系统何时启动一个检查点操作。如果上次检查点操作结束以后,系统产生的事务日志文件的个数超过checkpoint_segments的值,系统就会自动启动一个检查点操作。增大这个参数会增加数据库崩溃以后恢复操作需要的时间。

checkpoint_timeout (integer)

这个参数只能在postgresql.conf文件中被设置。单位是秒,默认值是300。它影响系统何时启动一个检查点操作。如果现在的时间减去上次检查点操作结束的时间超过了checkpoint_timeout的值,系统就会自动启动一个检查点操作。增大这个参数会增加数据库崩溃以后恢复操作需要的时间。

checkpoint_completion_target (floating point)

这个参数控制检查点操作的执行时间。合法的取值在0到1之间,默认值是0.5。不要轻易地改变这个参数的值,使用默认值即可。这个参数只能在postgresql.conf文件中被设置。

10.6 归档模式

archive_mode (boolean)

这个参数只有在启动数据库时,才能被设置。默认值是off。它决定数据库是否打开归档模式。

archive_dir (string)

这个参数只有在启动数据库时,才能被设置。默认值是空串。它设定存放归档事务日志文件的目录。

archive_timeout (integer)

这个参数只能在postgresql.conf文件中被设置。默认值是0。单位是秒。如果archive_timeout 的值不是0,而且当前时间减去数据库上次进行事务日志文件切换的时间大于archive_timeout的值,数据库将进行一次事务日志文件切换。一般情况下,数据库只有在一个事务日志文件写满以后,才会切换到下一个事务日志文件,设定这个参数可以让数据库在一个事务日志文件尚未写满的情况下切换到下一个事务日志文件。

10.7 优化器参数

10.7.1 存取方法参数

下列参数控制查询优化器是否使用特定的存取方法。除非对优化器特别了解,一般情况下,使用它们默认值即可。

enable_bitmapscan (boolean)

打开或者关闭bitmap-scan 。默认值是on。

enable_hashagg (boolean)

打开或者关闭hashed aggregation。默认值是on。

enable_hashjoin (boolean)

打开或者关闭hash-join。默认值是on。

enable_indexscan (boolean)

打开或者关闭index-scan。默认值是on。

enable_mergejoin (boolean)

打开或者关闭merge-join。默认值是on。

enable_nestloop (boolean)

打开或者关闭nested-loop join。默认值是on。不可能完全不使用nested-loop join,关闭这个参数会让系统在有其它存取方法可用的情况下,不使用nested-loop join。

enable_seqscan (boolean)

打开或者关闭sequential scan。默认值是on。不可能完全不使用sequential scan,关闭这个参数会让系统在有其它存取方法可用的情况下,不使用sequential scan。

PostgreSQL安装和简单使用

PostgreSQL安装和简单使用 PostgreSQL安装和简单使用 作者:小P 来自:https://www.wendangku.net/doc/7011029869.html, 摘要:PostgreSQL是现在比较流行的数据库之一,这个起源于伯克利(BSD)的数据库研究计划目前已经衍生成一项国际开发项目,并且有非常广泛的用户。据我了解国内四大国产数据库,其中三个都是基于PostgreSQL开发的。并且,因为许可证的灵活,任何人都可以以任何目的免费使用,修改,和分发PostgreSQL,不管是私用,商用,还是学术研究使用。本文只是简单介绍一下postgresql的安装和简单的使用,语法方面涉及的比较少,以方便新手上路为目的。目录1.系统环境及安装方法;1.1 系统环境; 1.2 安装; 2.启动PostgreSQL 数据库服务器;2.1 在流行Linux发行版的启动方法; 2.2 关于PostgreSQL启动和存储目录; 3.创建用户;3.1 添加用户; 3.1.1 不带参数的创建用户; 3.1.2 为指定的主机和端口上创建用户; 3.1.3创建超级用户; 3.2 删除用户:3.2.1 删除本地的Postgres用户;

3.2.2 删除远程Postgres服务器上的用户; 4. 创建和删除数据库;4.1创建数据库 4.2 删除数据库 5.访问数据库5.1 激活数据库 5.2 帮助和退出数据库 6. Postgresql图形化管理工具pgAdmin3 ;6.1 安装;6.1.1 Ubuntu安装; 6.1.2 其它系统的安装;6.2 pgAdmin3的简单使用;6.2.1 pgAdmin3的启动; 6.2.2 连接已创建的数据库mydb ; 7. 创建和删除表;7.1 创建新表; 7.2 数据类型; 7.3 删除表;8. 向表中添加行;8.1 INSERT; 8.2 point类型输入; 8.3 COPY;9. 查询一个表;9.1 SELECT; 9.2 WHERE; 9.3 排序;10. 视图; 11. 更新行; 12. 删除行; 13. 关于本文; 14. 更新日志; 15. 参考文档; 16. 相关文档; +++++++++++++++++++++++++++++++++++++++++++

birt报表技巧

Birt中的分页显示报表: 方法如下: 1、将鼠标停在表格上,选择明细数据行(Row Detail) 。 2、选择脚本(script)标签,在onPrepare方法中加入: count=0; 在onCreate方法中加入: count++; if(count % 10==0) { this.getStyle().pageBreakAfter="always"; } 然后放到服务器上运行,则实现分页显示。 Birt中报表参数的用法(一) Birt中有两种参数,一种是数据集参数,一种是报表参数。数据集参数一般是用于select语句中的?所代表的参数的。而报表参数一直则是整个报表的参数,定义它的目的一方面是和数据集参数绑定,一方面是在脚本中使用它。例如:我想设计一个报表,通过参数传递一个数据库中的表名,显示相应表中的数据,所有的表的结构一样!做法如下: 先定义数据源;然后定义数据集,查询选项中的语句写select * from [要传入的表名中的任意一个];然后定义一个报表参数table,设置一个默认值(默认表名);然后再数据集的脚本的beforeOpen方法中加入:this.queryText="select * from "+params["table"]; ;完成。 如何在Tomcat中配置使得能显示Birt Chart报表: 今天看了一本关于Birt方面的书,提到了在Tomcat中成功部署Birt的方法。我试了一下,果然可以,即可访问普通报表,又可访问chart报表,而且方法也比较简单。现介绍如下: 1、从网上下载birt-runtime-version.zip并解压 (https://www.wendangku.net/doc/7011029869.html,/birt/downloads/build.php?build=R-R1-2_1_3-200707051847)。 2、将解压后根目录中的WebViewerExample文件加复制到Tomcat根目录下的webapps 下面,并更名为birt_viewer2.2(因为我下的是2.2版本) 3、复制第三方软件:iText.jar(复制到 birt_viewer2.2\WEB-INF\platform\plugins\com.lowagie.itext_1.5.2.v20070626\lib 下)

PostgreSQL数据库使用pg_dump—psql 转储数据库

使用pg_dump/psql转储数据库 pg_dump/psql应用程序在pg安装目录的bin目录下。 只要在安装pg数据库的服务器上,且能够连通远程pg数据库,都可以实现数据导出。 一、pg_dump导出 pg_dump –h hostname –U name –p port –d database –f “file_name” -h: 数据库服务器地址 -U: 大写的U,用户名 -p: 端口号 -d: 数据库名 -f: 存储的文件路径和名称 pg_dump -h 110.84.129.40 -U postgres -p 3306 -d O2O -f "/home/wsxcde/database_file/O2O_bak_140430.dmp" 回城执行,会要求输入密码,正确,即可导出,没有进度条 远程导出300M的文件,大概时间10分钟。 以上命令是导出数据的全部对象,包括数据,对象(index,table,sequence,function等),但不包括blob的大对象,如果要导出大对象,要加上“-b”。 二、psql数据导入 psql –h localhost –U postgres –d new_db –f "xxx.dmp" -h: 数据库服务器地址,如果导入本机,直接使用localhost -U:大写的U,被导入数据库的用户名 -d: 数据库名,想导入的数据库,导入前请检查此数据库是否存在,不存在会报错 -f: 备份文件dmp的来源 psql–h localhost –U postgres –d O2O –f "/home/wsxcde/database_file/O2O_bak_140430.dmp" 300M的文件,导入时间不大约10多秒。

birt报表修改表格宽度的学习总结

修改birt报表的表格宽度的学习总结 一、原因 Birt做的报表表格宽度是根据表格里面的内容自动显示宽度,每列的宽度是与表头(header的label)或者表body(detail的data)里面内容最多的一格的宽度一致,有时候表头里面文字很长,但是该表头的那一列表body里面的内容却很少,就照成了除表头以外,body下面每一格特别的空,这样的列若是比较多的话表格就很不好看,而且浪费空间,以我碰到的问题为例,如图: 这个报表分为两部分,前一部分是直接用报表设计器设计的,表头是居顶的,后一部分是用代码加上去的,表头居中,而且他的内容全是数字,相对来说比较少,感觉空的地方很多,看上去不美观。 二、试着调试 由于网上资料比较少,我自己调试时都是自己摸索的,可能有些地方不是很简洁,但是效果还是出来了。 (1)、首先调整直接用报表设计器设计的报表,可以有两种方法调试, 1.第一种是手工代码调试:xml resource 先调整表头,所以在

下面的你想设计宽高的那一列下面,添加属性,根据里面的内容设计宽和高,这里我设计的是宽1.5cm,高0.7cm,注意是在label下面添加设置语句,: 0.7cm 1.5cm

如图:

点击table,然后选中你想要调整的那一行或者那一列,打开属性编辑器(birt 高级版本可以右击哪一行或者列直接打开,低版本的需要点击eclipse左下角的 下面的属性版本 ) 想要修改那一行或者列的宽或者高时,先以调整列宽为例,选中一列,在属 里面, 调整行高度跟列宽度类似,这里就不写出来了。 (2)调整由代码插入进来的行宽列高 这个就比较简单,在插入列以及header下直接写代码 MyLable.setWidth(“1.5”); myLabel.setHeight("0.7cm"); myDataItem2.setHeight("0.3cm"); myDataItem2.setWidth("1.5cm");

Eclipse BIRT 简单报表开发

Eclipse BIRT 简单报表开发 帮助文档: https://www.wendangku.net/doc/7011029869.html,/documentation/BIRT_231/wwhelp/wwhimpl/js/html/wwhelp.htm 1新建报表: 1.1运行向导建立工程,如下图: 1.2选择新建的工程,如下图:

1.3建立报表文件,如下图

这里选中Report templates:Blank Report

已经完成建立报表文件。 2连接数据库 2.1建立Data Source 这里我们会连接SQL Server 2005的示例数据库:AdventureWorks ●请确认已经安装这个示例数据库 ●请确认Sql server 2005已经打开TCP/IP连接,如下图: 打开建立Data Source向导,如下图:

这里要注意如果刚安装的Eclipse BIRT是没有(如下图): Com.microsoft.sqlserver.jdbc.SQLServerDriver (v1.2) 下载地址: https://www.wendangku.net/doc/7011029869.html,/download/8/B/D/8BDABAE2-B6EA-41D4-B903-7916EF36 90EF/sqljdbc_1.2.2323.101_enu.exe 安装方法: ●把文件解压 ●Manage Drivers ●Add-> 选中解压出来的文件:sqljdbc.jar ●添加成功 连接串:jdbc:sqlserver://localhost:1433;databasename=AdventureWorks

PostgreSQL详解

PostgreSQL数据库 一:PostgreSQL介绍 1、PostgreSQL就是以加州大学伯克利分校计算机系开发得 POSTGRES,现在已经更名为POSTGRES,版本 4、2为基础得对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分 SQL标准并且提供了许多其她现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新得数据类型、函数、操作符、聚集函数、索引方法、过程语言。并且,因为许可证得灵活,任何人都可以以任何目得免费使用、修改、与分发PostgreSQL,不管就是私用、商用、还就是学术研究使用。 2、PostgreSQL图标 3.PostgreSQL优点 有目前世界上最丰富得数据类型得支持支持,其中有些数据类型可以说连商业数据库都不具备,具体类型下文会说明、 PostgreSQL拥有一支非常活跃得开发队伍,而且在许多黑客得努力下,PostgreSQL 得质量日益提高 PostgreSQL 对接口得支持也就是非常丰富得,几乎支持所有类型得数据库客户端接口。这一点也可以说就是 PostgreSQL 一大优点。 4.PostgreSQL缺点 首先,早期得 PostgreSQL 继承了几乎所有 Ingres, Postgres, Postgres95 得问题:过于学院味,因为首先它得目得就是数据库研究,因此不论在稳定性, 性能还就是使用方方面面,长期以来一直没有得到重视,直到 PostgreSQL 项目开始以后,情况才越来越好,PostgreSQL 已经完全可以胜任任何中上规模范围内得应用范围得业务 其次,PostgreSQL 得确还欠缺一些比较高端得数据库管理系统需要得特性,比如数据库集群,更优良得管理工具与更加自动化得系统优化功能等提高数据库性能得机制等。 5.目前官方最新版本:9、3、2 二、windows下安装过程 1、开始安装:

PostgreSQL安装详细步骤(windows)

PostgreSQL安装详细步骤 PostgreSQL安装: 一、windows下安装过程 安装介质:postgresql-9.5.3-1-windows-x64,安装过程非常简单,过程如下:1、开始安装:

2、选择程序安装目录: 注:安装 PostgreSQL 的分区最好是 NTFS 格式的。PostgreSQL 首要任务是要保证数据的完整性,而 FAT 和 FAT32 文件系统不能提供这样的可靠性保障,而且 FAT 文件系统缺乏安全性保障,无法保证原始数据在未经授权的情况下被更改。此外,PostgreSQL 所使用的"多分点"功能完成表空间的这一特征在FAT文件系统下无法实现。 然而,在某些系统中,只有一种 FAT 分区,这种情况下,可以正常安装PostgreSQL,但不要进行数据库的初始化工作。安装完成后,在 FAT 分区上手动执行 initdb.exe 程序即可,但不能保证其安全性和可靠性,并且建立表空间也会失败。 3、选择数据存放目录:

4、输入数据库超级用户和创建的OS用户的密码

注:数据库超级用户是一个非管理员账户,这是为了减少黑客利用在 PostgreSQL 发现的缺陷对系统造成损害,因此需要对数据库超级用户设置密码,如下图所示,安装程序自动建立的服务用户的用户名默认为 postgres。 5、设置服务监听端口,默认为5432 6、选择运行时语言环境

注:选择数据库存储区域的运行时语言环境(字符编码格式)。 在选择语言环境时,若选择"default locale"会导致安装不正确;同时,PostgreSQL 不支持 GBK 和 GB18030 作为字符集,如果选择其它四个中文字符集:中文繁体香港(Chinese[Traditional], Hong Kong S.A.R.)、中文简体新加坡(Chinese[Simplified], Singapore)、中文繁体台湾 (Chinese[Traditional], Taiwan)和中文繁体澳门(Chinese[Traditional], Marco S.A.R.),会导致查询结果和排序效果不正确。建议选择"C",即不使用区域。 ----我选择了default localt,安装正确;建议选择default localt。 7、安装过程(2分钟)

PostgreSQL数据库安装教程

PostgreSQL数据库安装教程 (仅供参考) 最新更新:2014年08月27日 深圳市恩布网络科技有限公司 (内部技术文档)

目 录 1. Linux安装PostgreSQL数据库 (3) 1.1. 概述 (3) 1.2. 新建postgres用户和目录 (3) 1.3. 配置postgres用户的环境变量: (3) 1.4. yum安装 (3) 1.5. 初始化数据库目录 (3) 1.6. 给postgres赋予权限 (4) 1.7. 配置监听地址、端口 (4) 1.8. 配置支持远程连接 (4) 1.9. 设置开机启动 (4) 1.10. 启动服务 (4) 1.11. 修改postgres帐号密码 (4) 2. Windows安装PostgreSQL数据库 (5) 2.1. 概述 (5) 2.2. 安装 (5) 2.3. 配置监听地址、端口 (5) 2.4. 配置支持远程连接 (5) 3. 注意事项 (6) 4. 附录一:PostgreSQL数据库介绍 (6) 5. 附录二:PostgreSQL与MySQL比较 (6)

1.Linux安装PostgreSQL数据库 1.1.概述 以CentOS 6.4(或以上)X64(64位)版本,PostgreSQL8.4为例子说明。 本文仅供参考,如果安装不成功,或需要更多PostgreSQL技术资料,请自行上网搜索; 1.2.新建postgres用户和目录 mkdir /var/lib/pgsql groupadd postgres useradd ‐g postgres postgres 1.3.配置postgres用户的环境变量: cat >>/var/lib/pgsql/.bash_profile<

birt报表使用简要说明

Birt报表使用指南 1Birt的安装方法 把birt整合到了Myeclipse6.5中,(eclipse的官方网站上提供有一个birt-report-designer-all-in-one-2_2_2.zip,你直接解压缩这个就可以了,就免去了birt与Myeclipse6.5的整合)。 如果要把birt安装到Myeclipse6.5中,要注意一些事情 1.1eclipse的版本 就是说你的eclipse版本要和适当的birt版本配合,当前birt的最新稳定版是birt2.3。 如果使用的是eclipse3.3版本,你应该用birt-report-framework-2_2_2.zip,如果使用的是eclipse3.4,你应该用birt-report-framework-2_3_0.zip版本不一致会出一些问题。 1.2在Myeclipse6.5中装birt。 MyEclipse6.5自带的是eclipse3.3,所以只能下载birt-report-framework-2_2_2.zip (下载地址:https://www.wendangku.net/doc/7011029869.html,/birt/downloads/index2.2.2.php) 而birt-report-framework-2_3_0.zip是针对eclipse3.4的。 把下载下来的birt-report-framework-2_2_2.zip包解压,解压后的features文件夹下的所有文件拷贝到MyEclipse6.5安装目录下的..\myeclipse\eclipse\features 下,解压后的plugins文件夹下的所有文件拷贝到..\myeclipse\eclipse\plugins下。 重新启动MyEclipse就好了。

BIRT报表参数详解

在使用birt报表的时候感觉页面的BIRT Report Viewer头标题没有用,想去掉在网上一查原来有详细的参数设置,看来birt的功能还是很强大啊。现在转帖如下: BIRT作为一款功能强大的开源报表工具,其版本的升级更新速度也非常快,从1.0到2.0,一直到最新的2.2.1版本,无论从功能上还是性能上都得到了极大的提高和扩充。BIRT也提供了一个标准的J2EE实现组件,可以发布到支持J2EE应用的web server服务器上,可以对生成的报表进行预览等操作。在大家使用BIRT Viewer的时候,可能会对它日益纷繁的参数设置如云里雾里,在网上论坛里也有很多人碰到这样哪样的问题,同时官方的文档也不细致不全。所以我就对这些参数进行了一个简单系统的总结,希望能对大家的BIRT开发有所帮助。这些参数以2.2.1版本为准,请大家特别注意。 1.Servlet模式说明 查看BIRT Viewer自带的web.xml文件,可以看到有以下几个pattern: frameset----采用Ajax框架,可以显示工具条,导航条和TOC面板,实现复杂的操作,如分页处理,导出数据,导出报表,打印等等。该模式下会自动生成report document文件(预览report design文件)到特定的目录(用户可以用参数指定,也可以定义在web.xml里)。采用Ajax,速度较慢。 run----也采用Ajax框架,但不实现frameset的复杂功能,不会生成临时的report document 文件(预览report design文件),也不支持分页,这个主要是应用在BIRT Designer里的preview tab里,可以支持cancel操作,其它不怎么常用。采用Ajax,速度较慢。 preview---没有用到Ajax框架,直接调用底层Engine API对报表进行render,把生成的报表内容直接输出到浏览器。这种模式和run模式调用的是相同的Engine API,唯一区别在于run采用Ajax获取报表内容,而preview直接输出到浏览器。如果要支持分页,用户需要在URL上定义__page和__pagerange参数,这两个参数也会在后面详细说明。需要特别说明的是,在这几种预览模式中,preview的速度是最快的。 document---该模式主要是为了从report design文件生成report document文件。用户可以在URL上提定document文件生成存放的路径(存放在server端),如果未指定,会直接生成rptdocument发送到客户端浏览器,用户可以下载到客户端。 output---该模式类似于frameset,会自动生成report document文件(预览report design 文件),区别在于output不采用Ajax,而是将生成的报表内容直接输出到浏览器。 parameter---该模式主要用于生成一个参数对话框,一般用户不常用,用户可以直接通过提供的JSP Tag--parameterPage去实现参数对话框,不需要直接调用。 download---用于导出报表数据为CSV格式,当你使用frameset工具条里的导出数据功能时,会用到这个模式。 2.web.xml里的参数设置 web.xml文件里有许多参数,用户应该根据自已的需求出发对这些参数有一个深入的了解。

PostgreSQL索引

什么是索引? 索引的目的及优缺点? PostgreSQL中的索引及分类 索引是指按表中某些关键属性或表达式建立元组的逻辑顺序,它是由一系列表元组的标识号组成的一个列表。 在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。 索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。 索引的分类 按存储结构区分:“聚集索引(又称聚类索引,簇集索引)”,“分聚集索引(非聚类索引,非簇集索引)” 按数据唯一性区分:“唯一索引”,“非唯一索引” 按键列个数区分:“单列索引”,“多列索引”。 为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。 第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。 也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?这种想法固然有其合理性,然而也有其片面性。虽然,索引有许多优点,但是,为表中的每一个列都增加索引,是非常不明智的。这是因为,增加索引也有许多不利的一个方面。 第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。 第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。 第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 索引是建立在数据库表中的某些列的上面。因此,在创建索引的时候,应该仔细考虑在哪些列上可以创建索引,在哪些列上不能创建索引。一般来说,应该在这些列上创建索引,例如: 在经常需要搜索的列上,可以加快搜索的速度; 在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构; 在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度; 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;

MySQL和PostgreSQL两数据库的对决

MySQL和PostgreSQL两数据库的对决 在这篇文章中,我们选用MySQL4.0.2-alpha与PostgreSQL7.2进行比较,因为MySQL4.0.2-alpha开始支持事务的概念,因此这样的比较对于MySQL应该较为有利。我们这样的比较不想仅仅成为一份性能测试报告,因为至少从我个人来看,对于一个数据库,稳定性和速度并不能代表一切。对于一个成熟的数据库,稳定性肯定会日益提供。而随着硬件性能的飞速提高,速度也不再是什么太大的问题。 一、前言 前一段时间,我曾经翻译过一篇将你的网站从MySQL改为PostgreSQL,其实当初我更感兴趣的是一个应用程序的后台数据库从MySQL转为PostgreSQL的具体操作,并没有关心MySQL和PostgreSQL的优劣,没想到反应出乎意料的大,因此我也就觉得有写这篇文章的必要了。 在这篇文章中,我们选用MySQL4.0.2-alpha与PostgreSQL7.2进行比较,因为MySQL4.0.2-alpha开始支持事务的概念,因此这样的比较对于MySQL应该较为有利。 我们这样的比较不想仅仅成为一份性能测试报告,因为至少从我个人来看,对于一个数据库,稳定性和速度并不能代表一切。对于一个成熟的数据库,稳定性肯定会日益提供。而随着硬件性能的飞速提高,速度也不再是什么太大的问题。 二、两者的共同优势 这两个产品都属于开放源码的一员,性能和功能都在高速地提高和增强。MySQLAB的人们和PostgreSQL的开发者们都在尽可能地把各自的数据库改得越来越好,所以对于任何商业数据库使用其中的任何一个都不能算是错误的选择。 三、两者不同的背景 MySQL的背后是一个成熟的商业公司,而PostgreSQL的背后是一个庞大的志愿开发组。这使得MySQL的开发过程更为慎重,而PostgreSQL的反应更为迅速。 这样的两种背景直接导致了各自固有的优点和缺点。 四、MySQL的主要优点 1、首先是速度,MySQL通常要比PostgreSQL快得多。MySQL自已也宣称速度是他们追求的主要目标之一,基于这个原因,MySQL在以前的文档中也曾经说过并不准备支持事务和触发器。但是在最新的文档中,我们看到MySQL4.0.2-alpha已经开始支持事务,而且在MySQL的TODO中,对触发器、约束这样的注定会降低速度的功能也列入了日程。但是,我们仍然有理由相信,

birt配置参数详解

BIRT参数设置详解 2010-08-25 16:30 在使用birt报表的时候感觉页面的 BIRT Report Viewer头标题没有用,想去掉在网上一查原来有详细的参数设置,看来birt的功能还是很强大啊。现在转帖如下: BIRT作为一款功能强大的开源报表工具,其版本的升级更新速度也非常快,从1.0到2.0,一直到最新的2.2.1版本,无论从功能上还是性能上都得到了极大的提高和扩充。BIRT也提供了一个标准的J2EE实现组件,可以发布到支持J2EE 应用的web server服务器上,可以对生成的报表进行预览等操作。在大家使用BIRT Viewer的时候,可能会对它日益纷繁的参数设置如云里雾里,在网上论坛里也有很多人碰到这样哪样的问题,同时官方的文档也不细致不全。所以我就对这些参数进行了一个简单系统的总结,希望能对大家的BIRT开发有所帮助。这些参数以2.2.1版本为准,请大家特别注意。 1. Servlet模式说明 查看BIRT Viewer自带的web.xml文件,可以看到有以下几个pattern: frameset ---- 采用Ajax框架,可以显示工具条,导航条和TOC面板,实现复杂的操作,如分页处理,导出数据,导出报表,打印等等。该模式下会自动生成report document文件(预览report design文件)到特定的目录(用户可以用参数指定,也可以定义在web.xml里)。采用Ajax,速度较慢。 run ---- 也采用Ajax框架,但不实现frameset的复杂功能,不会生成临时的report document文件(预览report design文件),也不支持分页,这个主要是应用在BIRT Designer里的preview tab里,可以支持cancel操作,其它不怎么常用。采用Ajax,速度较慢。 preview --- 没有用到Ajax框架,直接调用底层Engine API对报表进行render,把生成的报表内容直接输出到浏览器。这种模式和run模式调用的是相同的Engine API,唯一区别在于run采用Ajax获取报表内容,而preview直接输出到浏览器。如果要支持分页,用户需要在URL上定义__page和 __pagerange参数,这两个参数也会在后面详细说明。需要特别说明的是,在这几种预览模式中,preview的速度是最快的。 document --- 该模式主要是为了从report design文件生成report document 文件。用户可以在URL上提定document文件生成存放的路径(存放在server端),如果未指定,会直接生成 rptdocument发送到客户端浏览器,用户可以下载到客户端。 output --- 该模式类似于frameset,会自动生成report document文件(预览report design文件),区别在于output不采用Ajax,而是将生成的报表内容直接输出到浏览器。

postgresql群集

注意事项:由于wordpress会自动将半角单引号转换为全角单引号,引用代码时需要手动修改为单引号 原理只是一个概念,可操作性不强,看了N多的半原理半细节的相关文章,却总是被各种各样的细节困惑住。为了自己下次能够快速的使用PostgreSQL,以流水帐的方式记录配置PostgreSQL集群的步骤,有些结论是自己猜想的或者引用的,以后发现错误再修正吧。 顺便发些感想(跳过下面一段,都是题外话,其实就是废话): 其实很多东西,从原理上说都很简单,几乎我们每个人都能说上一点。但是实际上,原理性的文章一般可操作性都不是很强。我个人觉得,如果目标是给自己看或者目标是让团队的人能够读懂并可以操作的文章,还是应该多一些细节描述,用文学的观点来说,就是表现手法要细腻一些。 Over,转入正题: 首先解释一下数据库集群:N个数据库堆到一起,找一个当个头头,管理所有的数据库并让它们协同工作。当然了,要不要找个头头,找几个头头,如何协作等等问题这些都可以商量和约定,因此,也就形成了不同的数据库集群。 如果数据库系统是PostgreSQL,这个集群就是PostgreSQL数据库集群。PostgreSQL数据库管理集群的方法有很多,有人提出了PL/Proxy方式的集群(这才是本文的重点)。这个PL/Proxy方式的集群是这样的:有很多安装了PostgreSQl数据库的计算机,有台计算机是头头,我们把这个头头叫做proxy,其他的叫做database0,database1……。当然名字叫什么是无所谓的,关键是有个是头头,其他的受头头指挥。 看个例子吧:以三台机器的集群为例子,看看PostgreSQL集群的架构是什么。proxy节点:proxy节点实际上也是一个PostgreSQL数据库节点,但是所有数据均不存放到proxy节点上,主要做三件事情: 1.接受用户的sql查询; 2.分析用户的sql查询并转换成集群上执行的SQL语句; 3.合并集群执行sql的结果,然后返回给用户。 说白了,就是把用户的sql语句交给database0,database1去执行,然后合并执行结果返回给用户。 database1节点和 database2节点: 就是普通的数据库节点,接收proxy节点的sql查询请求并返回结果给proxy 节点,是真正存放数据的节点。 没图没真相,还是来张集群结构图,结构更清晰一些: 看了原理图,是不是觉得很简单,稍微了解技术的人都能想到这种架构。既然这么简单,那就开始创建一个数据库集群吧,需求如下:

PostgreSql配置优化

PostgreSQL性能调优 硬件和系统配置 操作系统Ubuntu13.04 系统位数64 CPU Intel(R) Core(TM)2 Duo CPU 内存4G 硬盘Seagate ST2000DM001-1CH164 测试工具PostgreSQL-9.1.11 测试工具 工具名称pgbench 数据量200W(整个数据库大小约为300M) 模拟客户端数4 线程数 4 测试时间60秒 ?准备命令:pgbench -i -s 20 pgbenchdb ?测试命令:pgbench -r -j4 -c4 -T60 testdb 配置文件 默认的配置配置文件是保存在/etc/postgresql/VERSION/main目录下的postgresql.conf文件 ?如果想查看参数修改是否生效,可以用psql连接到数据库后,用 来查看。 ?如果要修改shared_buffers,在ubuntu下可能需要执行命令Managing Kernel Resources 主要选项 选项默认 值 说明优化原因 max_connections 100 允许客户端连接的最大数目否因为在测试的过程中,100个连接

已经足够 fsync on 强制把数据同步更新到磁盘是因为系统的IO压力很大,为了更好的测试其他配置的影响,把改参数改为off shared_buffers 24M B 决定有多少内存可以被PostgreSQL 用于缓存数据(推荐内存的1/4) 是 在IO压力很大的情况下,提高该 值可以减少IO work_mem 1MB 使内部排序和一些复杂的查询都在这 个buffer中完成 是 有助提高排序等操作的速度,并且 减低IO effective_cache_size 128 MB 优化器假设一个查询可以用的最大内 存,和shared_buffers无关(推荐 内存的1/2) 是 设置稍大,优化器更倾向使用索引 扫描而不是顺序扫描 maintenance_work_mem 16M B 这里定义的内存只是被VACUUM等 耗费资源较多的命令调用时使用 是把该值调大,能加快命令的执行 wal_buffer 768k B 日志缓存区的大小是 可以降低IO,如果遇上比较多的 并发短事务,应该和 commit_delay一起用 checkpoint_segments 3 设置wal log的最大数量数(一个log 的大小为16M) 是 默认的48M的缓存是一个严重的 瓶颈,基本上都要设置为10以上 checkpoint_completion_t arget 0.5 表示checkpoint的完成时间要在两 个checkpoint间隔时间的N%内完 成 是能降低平均写入的开销 commit_delay 0 事务提交后,日志写到wal log上到 wal_buffer写入到磁盘的时间间隔。 需要配合commit_sibling 是 能够一次写入多个事务,减少IO, 提高性能 commit_siblings 5 设置触发commit_delay的并发事 务数,根据并发事务多少来配置 是减少IO,提高性能 测试数据 ?测试的数据是运行3次,取平均值。 ?关闭fsync是为了更好的体现出其他参数对PostgreSQL的影响。 参数修改值事务总数tps(包括建立连接) tps(不包括建立连接) 默认设置8464 140.999792 141.016182 fsync off 92571 1479.969755 1480.163355 shared_buffers 1GB 100055 1635.759275 1635.977823 work_mem 10MB 101209 1665.804812 1666.04082 effective_cache_size 2GB 98209 1636.733152 1636.970271

birt动态分组报表制作

1 BIRT报表开发环境准备 (2) 1.1 BIRT报表开发准备 (2) 1.2 建立Web Project (2) 1.3 配置交叉报表数据源 (5) 1.3.1 建立公共资源的文件夹 (5) 1.3.2 建立公共资源Library (6) 2 动态分组交叉报表 (10) 2.1 建立报表文件夹 (10) 2.2 建立报表文件 (11) 2.3 复用报表数据源 (12) 2.4 配置交叉报表结果集 (13) 2.5 配置交叉报表分组字段 (16) 2.5.1 新建Data Cuber (16) 2.5.2 新建Groups (17) 2.6 配置交叉报表求和字段 (18) 2.7 交叉报表表样制作 (19) 2.7.1 新建Cross Tab (19) 2.7.2 完成报表表样制作 (20) 2.8 报表分页实现 (20) 2.9 预览交叉报表 (20) 3 部署交叉报表 (21) 4 运行交叉报表 (21)

1BIRT报表开发环境准备 1.1 BIRT报表开发准备 (1)、Ecplise:这里我使用的是Eclipse Platform Version: 3.6.2。 (2)、BIRT插件:可以通过Ecplise中的Install New Software 添加Birt插件。插件地址:(3)、Tomcat:这里我使用的是apache-tomcat-6.0.16 1.2 建立Web Project (1)、新建Web Project 为了体现BIRT与实际应用项目相结合的特点,首先建立一个Web Project,工程命名为myReport。 然后单击“Next”,出现下图:

【VIP专享】postgresql数据库 pg

postgresql数据库 pg_hba.conf配置说明 当一个客户端应用与数据库服务器进行联接时,它声明它将以哪个 PostgreSQL 用户的名称进行联接,就象我们登录一台 Unix 计算机一样。在 SQL 环境里,活跃的数据库用户名决定数据库对象的各种访问权限 — 参阅Chapter 17获 取更多信息。因此,实际上我们要限制的是用户可以联接的数据库。 认证是数据库服务器建立客户端的标识,然后通过一些手段判断是否允 许此客户端应用(或者运行这个客户端应用的用户)与它所要求的用户名进行 联接的过程。 PostgreSQL 提供多种不同的客户端认证方式。认证某个特定客户端联接所使用的方法可以通过基于(客户端)的主机地址,数据库和用户的方式进行选择;一些认证方法还允许你通过用户名进行限制。 PostgreSQL 用户名在逻辑上是和服务器运行的操作系统用户名相互独立的。如果某个服务器的所有用户在那台服务器机器上也有帐号,那么给数据库用 户赋与操作系统用户名是有意义的。不过,一个接收远程访问的服务器很有可能有许多没有本地操作系统帐号的用户,因而在这种情况下数据库用户和操作系统用户名之间不必有任何联系。 pg_hba.conf 文件 客户端认证是由一个配置文件控制的,通常其文件名是 pg_hba.conf,存放在数据库集群的数据目录里。(HBA 的意思是 host-based authentication:基于主机的认证。)在initdb初始化数据目录的时候,它 会安装一个缺省的文件。不过我们也可以把认证配置文件放在其它地方;参阅hba_file 配置参数。 文件 pg_hba.conf 的常用格式是一套记录,每行一条。空白行行被忽略,井号( # )开头的注释也被忽略。一条记录是由若干用空格和/或 tab 分隔 的字段组成。如果字段用引号包围,那么它可以包含空白。记录不能跨行存在。 每条记录声明一种联接类型,一个客户端 IP 地址范围(如果和联接类型 相关的话),一个数据库名,一个用户名字,以及对匹配这些参数的联接使用的认证方法。第一条匹配联接类型,客户端地址和联接企图请求的数据库名和用户名的记录将用于执行认证。这个处理过程没有"跨越"或者"回头"的说法:如果选择了一条记录而且认证失败,那么将不考虑后面的记录。如果没有匹配的记录,那么访问将被拒绝。 每条记录可以下面七种格式之一 local database user authentication-method [authentication-option] host database user CIDR-address authentication-method

birt报表初级教程之嵌套报表

birt报表初级教程之嵌套报表 嵌套报表 嵌套报表其实是一种设计技巧的应用,类似编码过程中的模块化设计。当报表的复杂程度让设计者开始觉得逻辑混乱的时候,可以使用嵌套报表设计方法,将报表拆分为多个不同的设计页面,然后使用一个总的页面将这些设计页面整合起来展现。 此外,嵌套报表有时候也会用于主从结构的实现,通过逐层嵌套,可以实现无限层次的主从结构数据展现。 本例,我们将每个客户的信息包括客户表中基本的信息以及他们的订单信息,在同一张表中按客户一一列出来,所使用的就是嵌套报表。 报表名我们定为:nestingTab.rptdesign 构建数据源 本例我们使用BIRT自带的数据源,在新建数据源选择数据源类型为默认的第一项:Classic Model Inc,Sample Database 数据库驱动类别;org.eclipse.birt.report.data.oda.sampledb.Driver(Classic Models Inc.SampleDB Driver);URL:jdbc:classicmodels:sampledb 构建数据集 本例我们需要建立2个数据集: 1.建立数据集payments,所用SQL语句:(这里我们加入条件选择订单大于150000) select CUSTOMERNUMBER,sum(AMOUNT)amount from CLASSICMODELS.PAYMENTS group by CUSTOMERNUMBER having sum(AMOUNT)>150000 order by amount desc 2.建立数据集customers:所用SQL语句: select*

Postgresql存储过程

用PL/pgSQL写postgreSQL的存储过程 一、存储过程结构: Create or replace function 过程名(参数名参数类型,…..) returns 返回值类型as $body$ //声明变量 Declare 变量名变量类型; 如: flag Boolean; 变量赋值方式(变量名类型:=值;) 如: Str text :=值; / str text; str :=值; Begin 函数体; End; $body$ Language plpgsql; 二、变量类型: 除了postgresql内置的变量类型外,常用的还有 RECORD ,表示一条记录 三、连接字符: Postgresql存储过程中的连接字符不再是“+”,而是使用“||”。 四、控制结构: 1、if 条件(五种形式) IF ... THEN IF ... THEN ... ELSE IF ... THEN ... ELSE IF IF ... THEN ... ELSIF ... THEN ... ELSE IF ... THEN ... ELSEIF ... THEN ... ELSE(注:ELSEIF 是 ELSIF 的别名)

2、循环 使用LOOP,EXIT,CONTINUE,WHILE,和 FOR 语句,可以控制PL/pgSQL 函数重复一系列命令。 1)、LOOP [ <

相关文档
相关文档 最新文档