Questions tagged «database-performance»

18
内部数据库不良-替换它还是卡盘硬件?
所以-我们有一个内部公司数据库,这是通常的工作:管理客户,电话,销售交易和客户协议/方案。 它是Access 2000前端和SQL Server 2000 Standard后端。单服务器,双Xeon 3.2GHz,2GB RAM,Windows Server 2003,整天获得约40%的CPU负载,分布在OS(HT)可见的4个内核上。 后端数据库的设计欠佳,并且在不到10年的时间里有机地增长了,由经验不足的个人维护。它的规范化很差,一些明显的问题包括具有成千上万行的表而没有主键或索引,这些表在系统中使用最频繁的某些部分的多表联接中也大量使用(例如,呼叫管理器应用程序,每天在每个人的第二个监视器上放置8个小时,每隔几秒钟运行一次效率低下的大查询)。 前端并没有更好,它是典型的混乱,包括数百种形式的表格,嵌套的已保存查询,VBA代码中编写不佳的嵌入式SQL,数十个“怪癖”等,并且每当进行更改时,似乎无关的东西就会中断。我们已经选择了一个运作良好的MDB,并且由于我们内部没有Access的重量级人物(也没有计划雇用任何一个),因此现在对此没有更改政策。 该公司现在正在缓慢发展,增加了客户,呼叫等的数量,并发用户的数量也有适度的增加,并且性能最近一直在明显变差(等待在表单之间移动,等待列表填充等)。 ) Perfmon说: 每秒磁盘传输:0到30之间,平均4。 当前磁盘队列长度:徘徊在1 SQL Server的探查器每分钟看到数十万个查询。客户端上的CPU使用率几乎为零,表明它正在等待服务器端查询执行。我已经通过数据库引擎优化顾问(DB Engine Tuning Advisor)来处理此工作负载,并将其建议应用于测试备份,但这并没有太大的改变。 顺便说一下,我们在一个子网中混合了100MB和千兆以太网,两层楼有40个ish用户。 问题。 如我所见,我们有两种选择来解决/改善这种情况。 我们可以将其报废并将其替换为全新或定制的CRM系统 我们可以通过固定硬件来延长该系统的寿命。 我们可以构建具有疯狂性能数字的Intel i7系统,而成本却比更换软件少一个数量级。 最终开发出新系统时,可以将其托管在此设备上,因此不会浪费硬件。一个新的CRM系统不断推陈出新-我至少一年都不会看到这种情况。 对于这种情况的任何想法,特别是如果您自己来过这里的情况,将不胜感激。 谢谢

2
如何计算PostgreSQL的max_connections和pgbouncer的default_pool_size?
是否有一个规则或东西,我可以用它来计算出一个良好的数量max_connections,default_pool_size和max_client_conn? 默认值是奇数。PostgreSQL默认为max_connections = 100,而pgbouncer默认为default_pool_size = 20。default_pool_size不应总是大于max_connections吗?否则,有什么意义呢?我认为pgbouncer的目的是让我们通过减少开销(通过重用PostgreSQL的连接)来处理更多的连接。我很困惑。 我正在寻找与PostgreSQL Wiki中类似的建议,例如“此参数应该是您内存的〜50%”。 我记得有一个用于MySQL的电子表格,可以让您计算这类参数。对于PostgreSQL / pgbouncer拥有类似的功能真是太棒了。

6
用于生产数据库的SQL Server Express?
我们将推出一个双重Web /内部事务应用程序,其中每个客户端都有自己的数据库。每个数据库都很小-每个数据库都小于50MB,因此我们想知道使用SQL Express 2008而不是完整的SQL Server是否有意义。 这似乎具有在服务器之间分配磁盘I / O的优点,同时又节省了大量资金(因为小型15K驱动器和二手双核服务器都不便宜)。如果在某个时候我们需要太多服务器,则可以升级到SQL Server ...但是,由于有许多内部用户,这现在似乎太昂贵了(特别是因为我们需要故障转移盒)。 鉴于我们的数据库规模较小,在单个处理器上使用1GB内存和4个内核的使用听起来似乎不太严格。我们永远不会有超过200个并发用户,并且大多数操作将更具事务性(这似乎比重载RAM / CPU更青睐大量的高速磁盘,对吗?) 我是否错过了SQL Server Standard的任何优势,这些优势最初可以证明额外的$ 5-20K投资?

2
是否有MySQL性能基准来衡量utf8_unicode_ci与utf8_general_ci的影响?
我读到这里和那里,使用utf8_unicode_ci核对,确保更好的治疗Unicode文本(例如,它的已知,如何扩展字符,如“O E”到“OE”的搜索和排序)相比默认utf8_general_ci它基本上只是剥离变音符号。不幸的是,两个消息来源都表明该utf8_unicode_ci速度慢于utf8_general_ci。 所以我的问题是:“稍微慢一点”是什么意思?有没有人运行基准测试?我们是在谈论-0.01%的性能影响,或者说是-25%的影响? 谢谢你的帮助。

3
Microsoft SQL Server安装位置的重要性
我有一台具有便宜的慢速磁盘和昂贵的快速磁盘的服务器。 我想将昂贵的磁盘用于所有重要的快速事物,例如我的数据库。 为了省钱,我想将慢速磁盘用于无论快还是慢都没有太大区别的任何事情,例如备份。 现在,我的问题是,应该在慢速磁盘还是快速磁盘上安装 Microsoft SQL Server? (要清楚,无论如何我都会将数据库放置在快速磁盘上,因此我的问题仅与安装本身的位置有关)

3
postgres stats收集器进程生成的I / O过多
我将XenServer与具有本地postgres数据库的多个虚拟机一起使用。即使所有应用程序都未使用且数据库处于空闲状态,每个vm也会导致持续的存储网络流量,从而降低iscsi存储设备的性能。 运行后,iotop我注意到postgres stats收集器处理过程不断以大约2 MByte / s的速度写入磁盘。 然后,我通过编辑禁止收集统计信息/etc/postgresql/8.4/main/postgresql.conf: #------------------------------------------------------------------------------ # RUNTIME STATISTICS #------------------------------------------------------------------------------ # - Query/Index Statistics Collector - track_activities = off track_counts = off ... 如http://www.postgresql.org/docs/8.4/static/runtime-config-statistics.htm中的建议。 这消除了连续写入,但是关闭统计信息跟踪是否有任何缺点? 还是应该将pg_stat_tmp目录放置在ramdisk上,以避免磁盘/网络流量? 该系统是最新的Debian 6.0.7(压缩版),具有postgres 8.4和约20个数据库(约50个表),总转储文件大小小于100 MB。

1
删除很多行后,我是否需要重新索引和抽真空表?
我正在运行一个PostgreSQL数据库,该数据库具有几个存储日志信息的表。此信息仅用于报告目的,如果超过30天,则将其转储到文件中并从数据库中删除。 可能有数百万行被删除,并且删除后每次都运行REINDEX。 这是否足够,还是我们还应该运行VACUUM或VACUUM ANALYZE?还是不需要REINDEX,而我们应该只运行VACUUM或VACUUM ANALYZE? 我们正在使用PostgreSQL 8.2.3,我相信它不允许自动抽真空。

2
PostgreSQL对大量数据库的性能如何?
我们有一个Web应用程序,该Web应用程序的体系结构要求将任何注册用户(实际上是一家公司)与其他用户隔离开,即,我将使用相同的数据模型运行相同的Webapp,但为每个客户使用不同的数据集。 因此,我们确实考虑过在Postgres中为每个客户创建一个不同的数据库。该解决方案可以扩展到10-20K个数据库吗?多好? 有谁对此有更好的解决方案? 提前致谢。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.