Questions tagged «performance»

对系统是否运行良好以适合目标的评估。通常,性能是指系统随时间完成一个或一组操作的速度。


2
我可以在服务器中添加什么以使SQL恢复更快?
我有一个2.8TB的SQL数据库(主要是数据文件,一些400GB的日志文件),目前大约需要9个小时才能还原。该数据库用于测试目的,必须在每次运行之间从备份中删除和还原该数据库,以确保我们始终从同一点开始。 我的问题是,该服务器当前具有12个核心和92GB的RAM,以及数据库所在的RAID 5磁盘子系统。哪些区域通常会导致SQL还原过程出现瓶颈?是磁盘,内存还是CPU?


1
启动/停止MySQL
我正在寻求帮助,以了解执行以下命令行时会发生什么: root@prodn$ service mysqld stop 是的,它关闭了MySQL服务器,因此直到再次启动该服务后,对它的访问不再可用。但是,更具体地说,停止服务时还会发生其他情况吗?请原谅我的新手,但是当mysqld重新启动时,是否表示日志已刷新,部分内存已释放,缓存已清空等? 我问的原因如下: 我们的数据仓库数据库是MySQL数据库,在过去的4个月中,平均花费了8.5个小时。 上星期三,我停止了mysql服务,然后在30分钟后重新启动它。从那以后,我开始注意到整体性能有了巨大的提高 -SELECT / INSERT / UPDATE / DELETE流程更加高效。DW在差不多4个小时前完成了相同数量的数据行 但是,随着时间的流逝,完成时间会增加15-20分钟。因此,我怀疑我可能必须每周重新启动该服务。 有这种行为的解释吗?我不知道还有什么其他问题,但是很高兴知道mysqld服务重启时会发生什么。 谁能对此有所启发?

1
SQL Server 2008 R2高缓冲区I / O原因
我正在尝试对我们的文档管理服务器具有的SQL Server的性能进行故障排除,而今天的性能一直处于历史最低水平。 查看我最近设置的管理数据仓库(MDW),我可以看到缓冲区I / O急剧增加。组合的SQL等待时间在1500-2000毫秒的范围内,这比正常时间(大约500毫秒)要高得多。这种增加的很大一部分是缓冲区I / O。 我不是一名DBA,而是出于必要而这样做,我深深地陷入了深度。 有什么办法可以说明为什么缓冲区I / O大大增加了?这是否可能是由于查询提取大量数据或SQL Server内存限制的配置不正确?有什么我应该关注的特定问题(或一般性问题)或可以查询以帮助解决问题的DMV? 该服务器是SQL Server 2008 R2。它是一个运行两个vCPU和8GB RAM的VM,其磁盘托管在SAN的单独阵列上。 上面的图形都是使用SQL Server 管理数据仓库生成的。

4
SQL Server-在SAN上分离数据,日志和TempDB文件
我有一个连接到SAN的SQL Server。我们的新存储供应商建议所有LUN跨越整个磁盘阵列,即RAID5。我通常会向SAN管理员请求3个单独的LUN(数据,日志和TempDB),但是鉴于新供应商的建议,创建单独的LUN有什么意义吗?还是如果所有内容都在一个LUN中,因为它仍然可以覆盖所有磁盘,我是否会看到相同的性能? 很棒的文章在这里,但是并不能完全解决我的确切情况:http : //www.brentozar.com/archive/2008/08/sql-server-on-a-san-dedicated-or-shared-drives/

2
随着时间的流逝,SQL Server变得越来越慢,直到我们不得不重新启动它为止
我们有一个混合OLAP / OLTP工作负载的数据库。这些查询是非常特殊的,并且是在中间层应用程序服务器中动态创建的。当我们启动服务器时,性能是可以接受的,但是在所有可用内存(30GB)用完之前,内存消耗越来越多。在那之后,系统变得越来越慢。 像这样的命令Dbcc freeproccache无效。 交易select * from sys.dm_tran_session_transactions不多(不超过系统正常时),有时此列表为空。 的第一个结果dbcc memorystatus是 VM Reserved 42136628 VM Committed 1487176 Locked Pages Allocated 24994048 Reserved Memory 1024 Reserved Memory In Use 0 重新启动SQL Server可以解决该问题一段时间。 是什么原因导致这种现象?如何避免呢? 如果真正的解决方法太困难了,是否有一条命令可以强制SQL Server在不重新启动DBMS的情况下实际释放所有内存? 服务器在专用硬件(不是VM)上运行。我们有一些预定的工作,但是暂时禁用了它们,没有任何变化。同一台服务器上还运行着其他中层应用程序,但是它们使用的内存不超过2GB,CPU可以忽略不计,几乎没有I / O。我们没有更改就重新启动了所有此类应用程序。

2
索引碎片和SSD磁盘
我是性能问题的新手,但我看到一些讨论,即SSD磁盘解决了索引碎片导致的性能问题。有人经历过吗?我正在考虑更改硬件,并且在徘徊是否有帮助

3
MySQL缓慢使用内存,直到它开始使用交换
我正在运行1gb的RAM机架数据库服务器。由于某种原因,在大约2天的时间内,内存使用量从使用很少的交换空间变为使用100mb。如果我不重新启动sql,它将继续使用更多交换。(我的my.cnf文件如下所示,内存使用情况如下所示) 背景知识:我大约有50个活动数据库,这些数据库具有与使用INNODB的表相同的架构。我有几个使用MyISAM的流量很少的数据库。 在INNODB表上,我不使用持久连接。我还具有创建临时表的报告功能。(这可能会占用大量资源,但不会经常发生) 我正在使用CENTOS 6.3和mysql 5.5.28-log 即使我使用交换,性能仍然相当不错。我只是担心,如果我每隔几天不重新启动,就会遇到问题。 这是我大约两天的free -m日志:(第一条记录是在mysql重新启动之后) 12/26 2:08 PM EST total used free shared buffers cached Mem: 992 697 295 0 74 362 -/+ buffers/cache: 260 732 Swap: 976 15 961 12/26 4:10 PM EST [root@php-pos-db ~]# free -m total used free shared buffers cached Mem: 992 …

3
使未使用的数据库脱机的性能优势
我有一些用于遗留应用程序的数据库,这些数据库在虚拟机中运行,这些虚拟机当前处于关闭状态,直到有人需要查看一些历史记录为止。我已将这些应用程序使用的每个数据库设置为脱机,但我想知道: 将这些未使用的数据库置于脱机状态,而不是使它们处于联机状态,但是在未与它们建立任何连接或对它们运行查询的情况下,是否具有性能优势?

1
设置PostgreSQL记录所有语句对性能的影响
Windows 7 64位上的PostgreSQL 9.2.2。 设置log_statement在postgresql.conf文件中指定的语句记录哪些(无,DDL,修改数据,或全部)。设置在多大程度上log_statement = 'all'降低性能?我已经读到这会显着降低性能,但是这些主张来自于较早的文章,所以相对于我,我应该期望多少性能损失log_statement = 'none'?

3
在中央数据库中创建功能还是在每个数据库中重复?
我的一位开发人员编写了一个SQL函数,该函数的功能类似于VB.Net函数(LastIndexOf),并希望将其发布。我的问题是将其放入中央数据库而不是将其放入每个用户数据库的原因是什么? 开发人员试图将其放在sys模式中的主数据库上,这样他就不必限定来自用户数据库的调用... 但是我不确定将其集中到每个用户数据库的有效借口(显然不是主数据库)是什么?

1
递归CTE性能
需要递归CTE性能方面的帮助。低于CTE的速度非常慢,因为它试图以回溯方式提取分层数据。表很大,每个根ID最多具有3个递归itemid。可能有大约200000或更多根ID。我知道对于大型数据集,递归CTE的速度很慢,因为锚中的每个rootid都会递归itemid。 架构: Create table RootItem (ItemId int primary key, RootIt int , insertdate datetime) 上表有超过一百万行。 CTE查询: ; With rootcte as ( select itemid from RootItem where rootid is null union all select r.itemid as RootId , i.itemid from RootItem i join rootcte r on i.rootid = r.itemid ) 我们无法修改表架构并使用继承权。我也尝试了while循环,但是那也很慢。 还有什么其他方法可以优化此查询? …

3
在全文搜索查询中优化ORDER BY
我有一张entities约有1500万条记录的大桌子。我想在其中找到与“曲棍球”匹配的前5行name。 我在上有全文索引name,该索引用于:gin_ix_entity_full_text_search_name 查询: SELECT "entities".*, ts_rank(to_tsvector('english', "entities"."name"::text), to_tsquery('english', 'hockey'::text)) AS "rank0.48661998202865475" FROM "entities" WHERE "entities"."place" = 'f' AND (to_tsvector('english', "entities"."name"::text) @@ to_tsquery('english', 'hockey'::text)) ORDER BY "rank0.48661998202865475" DESC LIMIT 5 持续时间25,623 ms 解释计划 1个限制(cost = 12666.89..12666.89行= 5宽度= 3116) 2->排序(费用= 12666.89..12670.18行= 6571宽度= 3116) 3排序键:(ts_rank(to_tsvector('english':: regconfig,(name):: text),'''hockey''':: tsquery)) 4->对实体进行位图堆扫描(cost = 124.06..12645.06行= 6571宽度= 3116) …

2
使用数据库快照进行报告的优势
使用数据库快照进行报告的性能优势是什么? 从我的角度来看,这可能会降低性能,因为原始数据库中的每次写入都必须对快照本身进行另一次写入。 我可以看到,无论何时要报告数据,您都将使用快照,但这并不属于性能类别。 再说一次,是否有性能优势?

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.