Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL安装的配置建议_Postgresql_Configuration_Windows Server 2003 - Fatal编程技术网

PostgreSQL安装的配置建议

PostgreSQL安装的配置建议,postgresql,configuration,windows-server-2003,Postgresql,Configuration,Windows Server 2003,我有一台Windows Server 2003机器,我将使用它作为Postgres数据库服务器,这台机器是一台双核3.0Ghz Xeon,带有4 GB ECC内存和4 x 120GB 10K RPM SAS驱动器,全部剥离 我已经读到默认的Postgres安装配置为在486上运行良好,内存为32MB,我也读过一些关于配置优化的网页,但我希望从Stackoverflow peeps中得到一些更具体的东西 一般来说,它只服务于一个数据库(潜在的一个或两个以上),但问题是数据库有一个特别大的表(数亿条

我有一台Windows Server 2003机器,我将使用它作为Postgres数据库服务器,这台机器是一台双核3.0Ghz Xeon,带有4 GB ECC内存和4 x 120GB 10K RPM SAS驱动器,全部剥离

我已经读到默认的Postgres安装配置为在486上运行良好,内存为32MB,我也读过一些关于配置优化的网页,但我希望从Stackoverflow peeps中得到一些更具体的东西

一般来说,它只服务于一个数据库(潜在的一个或两个以上),但问题是数据库有一个特别大的表(数亿条记录,只有几列)。目前,使用默认配置,速度并不慢,但我认为可能会更快


人们可以给我一些指导和建议的配置设置,您将使用这样的服务器

我的经验表明(在一定范围内),硬件通常是数据库性能中最不重要的因素

假设您有足够的内存将常用数据保存在缓存中,那么您的CPU速度可能会在顶级机器和普通或花园机箱之间变化10-50%

但是,重要搜索中缺少索引,或者递归触发器写得不好,很容易导致响应时间相差1000%或10000%或更多

在不确切了解表结构和行数的情况下,我认为任何人都会认为您的硬件看起来足够了。只有您的数据库结构才会让您丧命。:)

更新:

如果不知道具体的查询和索引详细信息,我们就无能为力了。通常,即使知道查询,如果不实际安装并运行具有真实数据集的查询,通常也很难进行优化

考虑到服务器的成本和您的时间成本,我认为您需要在一本书上投资30美元。然后用测试数据安装数据库,运行查询,看看哪些运行良好,哪些运行不好。固定,冲洗,然后重复

这两本书都是针对SQL Server的,并且都有很高的评分:

  • 4*剥离驱动器是个坏主意-如果其中任何一个驱动器出现故障,那么您将丢失所有数据,甚至SAS驱动器有时也会出现故障-使用4个驱动器的可能性是使用1个驱动器的4倍;你应该去看电影

  • 现在使用最新版本的Postgres 8.3.7;每个主要版本都有许多性能改进

  • postgresql.conf
    中的
    shared\u buffers
    参数设置为内存的1/4左右

  • effective\u cache\u size
    设置为内存的1/2左右

  • checkpoint_segments
    设置为大约32(每512MB设置一个检查点),将
    checkpoint_completion_target
    设置为大约0.8

  • default\u statistics\u target
    设置为大约100

  • 迁移到Enterprise Linux或FreeBSD:Postgres在Unix类型的系统上工作得更好-Windows支持是最近添加的,不是很成熟


您可以在本页上阅读更多内容:

您(可能)在这里问错了人,你应该去那里询问,你会得到更好的回答。我以前在stack overflow中问过类似的问题,取得了很大的成功——主要是因为配置服务器是一回事,而完全破坏配置又是另一回事,这会影响客户端代码。是的,服务器无疑是一头野兽……再次,这个问题更多的是关于配置改进,而不是关于“硬件”。我询问stackoverflow的理由是因为我非常清楚用于调整内存缓存和查询性能的设置与最大连接数直接相关,我不想更改一个设置,该设置会通过限制数据库连接数使情况变得更糟,或者过度使用记忆。这正是我想要的——谢谢。