Questions tagged «performance»

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

4
某些用户查询缓慢
我从C#.NET Web应用程序中调用了几个查询,这些查询对我来说总是很快的(我是SQL Server上的本地管理员),但是对于一组用户(具有所需权限的域组)而言,查询速度却非常慢它在应用程序中超时的点。 是什么导致完全相同的查询针对不同的用户运行不同? 更多信息: 该查询是C#代码中的内联SQL,而不是存储过程 该应用程序使用域身份验证,用户和我自己都可以通过该应用程序运行查询 似乎问题出在不同的计划上,其中一个已被缓存,因此这对于不同的用户来说是不同的。某些因素正在影响缓存,因为现在通过应用程序查询对我来说很慢,而在SQL Server Management Studio中则很快。

1
Qcache_free_memory还不满,我得到了很多Qcache_lowmem_prunes
我刚刚开始涉足CMS的查询缓存。 谁能告诉我(或至少提供一个良好的猜测)为什么我得到了很多的Qcache_lowmem_prunes时候有一半以上Qcache_free_memory是免费的吗? query_cache_size=512M query_cache_limit=1M 这是大约12小时后的样子 show status like '%qcach%'; +-------------------------+-----------+ | Variable_name | Value | +-------------------------+-----------+ | Qcache_free_blocks | 10338 | | Qcache_free_memory | 297348320 | | Qcache_hits | 10254104 | | Qcache_inserts | 6072945 | | Qcache_lowmem_prunes | 725279 | | Qcache_not_cached | 2237603 | | Qcache_queries_in_cache | 48119 …

1
SQL Server缓存刷新和磁盘I / O
我们正在忙于负载测试我们在.NET 4.0中开发的OLTP系统,并在后面运行SQL Server 2008 R2。该系统使用性能非常出色的SQL Server Service Broker队列,但是在处理过程中我们遇到了一种特殊的趋势。 SQL Server处理请求的速度为1分钟,然后增加磁盘写入活动的时间约20秒。下图说明了该问题。 Yellow = Transactions per second Blue = Total CPU usage Red = Sqlsrv Disk Write Bytes/s Green = Sqlsrv Disk Read Bytes/s 在故障排除期间,我们尝试了以下操作,但模式没有任何重大变化: 停止SQL Server代理。 几乎杀死了所有其他正在运行的进程(没有A / V,SSMS,VS,Windows资源管理器等) 删除了所有其他数据库。 禁用所有对话计时器(我们不使用任何触发器)。 从消息队列驱动的方法转移到简单/粗略的表监视设计。 从轻到重使用了不同的负载。 修复了所有死锁。 似乎SQL Server可能正在建立其缓存并以特定的基于时间的时间间隔将其写入磁盘,但是我找不到任何在线资源来支持该理论。 接下来,我计划将解决方案移至我们专用的测试环境,以查看是否可以重现问题。在此期间的任何帮助将不胜感激。 Update 1 根据要求,提供一个图形,其中包括Checkpoint Pages …

3
INNODB性能泄漏在哪里?
我有一个奇怪的问题,似乎无法解决。我不是服务器/数据库管理员,而是Web程序员,所以我希望这里有人可以帮助我。 情况 我正在开发一个处理很多update,insert和delete请求的系统。因此,我选择INNODB作为其行锁定功能的存储引擎。我们使用Gearman并行化在不同服务器上的工作,每10分钟更新60,000条记录。该代码在PHP中,我们正在使用Zend Framework。 问题 SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction 我们几乎每30分钟就会从我们的一名Gearman工人那里收到上述错误。 的 mysql_report MySQL 5.1.63-0+squeeze1 uptime 15 9:52:12 Tue Sep 11 21:25:23 2012 __ Key _________________________________________________________________ Buffer used 55.00k of 16.00M %Used: 0.34 Current 2.92M %Usage: 18.24 Write hit 99.95% Read hit 100.00% __ …

2
策略是要处理其中包含太多文件(BLOB)的SQL Server DB?
方案: 为ASP.NET应用程序提供服务的SQL Server 2005数据库(在单独的Web服务器上)。 数据库: DB中大约有5GB的“普通”数据,以及大约15GB的“文件”(例如,存储为图像的20万PDF(BLOB)之类的东西)。用户正在上传更多文件,并且正在迅速消耗更多磁盘空间(在未来几个月中,DB可能会增长到50GB,主要是文件)。 问题: 在数据库中存储如此多的文件已经引起了问题(例如:数据库的大容量使偶尔的整个DB备份和部署变得困难。)。 我们担心会有更多问题。(例如:性能问题-可能是由于无法将整个数据库保留在RAM中引起的,也许吗?) 问题: 您对这个问题有什么建议?将文件存储在文件系统中?将数据库分成两部分,并为文件分配一个更大,更慢的文件? 需要的更多详细信息: 这些文件不是非常重要,并且不需要非常快速的访问时间-几秒钟就可以了,目前,每小时最多可以选择十二个文件。数据库中的其他“正常”数据包含每秒需要多次的信息。

1
InnoDB INSERT性能的功能
嗨,我正在运行Percona Server的最新版本。 服务器版本:5.5.24-55 Percona服务器(GPL),版本26.0 我有这些特征的10 cpu盒。 processor : 0 vendor_id : AuthenticAMD cpu family : 16 model : 9 model name : AMD Opteron(tm) Processor 6128 stepping : 1 microcode : 0x10000d9 cpu MHz : 800.000 cache size : 512 KB 它具有SSD和64GB RAM。Innodb大约为10GB,因此innodb_buffer_pool_size设置为10GB。 我有一张桌子,如下所示: create table TODAY ( symbol_id integer …

5
SQL事件探查器会影响服务器性能吗?
我遇到了一个问题,其中sql server 2008因某些高负载而失败。我需要找到这种负载情况,并需要优化代码以使其能够处理负载。我在互联网上发现,SQL事件探查器可用于跟踪数据库交互,然后可以对其进行分析以找到问题发生的确切点。我还发现了如何启动sql profiler。但是现在我的问题是,通过启动sql profiler,我是否会影响服务器性能?

3
在内存中缓存MySQL数据库
我在使用600MB MySQL数据库的网站时遇到问题。该网站太慢了。我注意到MySQL数据库越大,运行速度越慢。当它为5MB时,该网站非常快。当它开始变大时,它开始变得越来越慢,现在达到600MB,确实很慢,加载页面大约需要10秒。 我检查了最重要的进程,它与高负载或任何东西都没有关系。正如我在HDD 7.2k rpm驱动器上进行测试时,它甚至与IOPS都不相关,而在使用Intel 320 SSD驱动器进行测试时,它也出现了相同的问题,因此我也不认为这与高查询量有关。 该网站正在使用Wordpress,并且有9个活动的插件。人们说这可能是插件...也许吧...但是现在我只想将整个数据库缓存在内存中,并希望获得有关从何处开始以及如何执行的帮助和指导。 我有16GB RAM和i5-2400 4核@ 3.1 GHz。操作系统是centos 5.7 top - 07:23:57 up 9 days, 12:15, 0 users, load average: 0.09, 0.04, 0.05 Tasks: 162 total, 1 running, 161 sleeping, 0 stopped, 0 zombie Cpu(s): 8.2%us, 1.0%sy, 0.0%ni, 90.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 16367532k …

4
帮我为SQL Server 2008实例选择RAID级别组合
我将从头开始重建一台IBM 3400服务器。该服务器专用于在Windows 2008 R2上运行的SQL Server 2008实例。 我将进行新的RAID配置。我的机器内部有6个SCSI 73 GB驱动器和一个IBM ServerRAID 8K控制器。设置RAID级别的好方法是什么?我的控制器上应该有两个,三个还是一个字段? 我正在考虑提出以下解决方案之一: 使用所有磁盘并创建RAID 10池。 将4个磁盘用于RAID 1e池,并将其用于存储数据库数据和OS,将其他2个磁盘用于RAID 0池,并将其用于存储数据库日志。 其他组合。 较大的条带单元尺寸更好吗? 该服务器将成为复制数据库的订阅者。它的主要任务是报告和数据检索,仅复制代理进行写操作。数据库的大小约为90 GB。

2
为了最大程度地提高数据库性能,应在通过SSIS将大量数据加载到SQL Server 2008之后运行哪些命令
我写了一个SSIS包,将测试数据加载到一个空数据库中。一些表非常大(约7亿行)。SSIS软件包完成后,是否应该运行任何命令(作为学徒DBA!)以最大化数据库的性能? 例如,我执行了EXEC sp_updatestats但是它报告没有索引需要更新。 一旦加载了大量数据,是否有一系列事情要做?或者SQL Server 2008会为您完成所有这些工作吗?

6
是什么导致PHP和MySQL之间奇怪的查询超时?
我是许多不同客户使用的软件即服务应用程序的高级开发人员。我们的软件在由MySQL后端提供支持的Apache / PHP应用服务器集群上运行。在该软件的一个特定实例上,当客户拥有29个以上类别时,用于查询类别名称列表的PHP代码将超时。我知道这没有道理;没有什么特别的数字可以打破这个数字30,而其他客户拥有超过30个类别,但是,问题是当这个安装具有30个或更多类别时,它是100%可复制的,而当类别少于30时,这个问题就消失了。 有问题的表是: CREATE TABLE IF NOT EXISTS `categories` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(64) NOT NULL, `title` varchar(128) NOT NULL, `parent` int(10) unsigned NOT NULL, `keywords` varchar(255) NOT NULL, `description` text NOT NULL, `status` enum('Active','Inactive','_Deleted','_New') NOT NULL default 'Active', `style` enum('_Unknown') default NULL COMMENT 'Autoenum;', …

2
关于可保存性的问题
我只需要确认我正确理解了一些内容: 我最近查看了一个SO问题,其中用户在Linq中发布了一个答案,例如: from p in db.table where p.column.AddMinutes(1) > DateTime.Now select p 对于那些不熟悉Linq的人,我希望该语句的输出(未经过公平测试)是: SELECT * FROM table t WHERE DATEADD(min, 1, t.column) >= GETDATE() 我对此发表了回复,说datetime操作应该在变量上(在本例中为GETDATE()),因此实际上该语句应反映如下内容: SELECT * FROM table t WHERE t.column >= DATEADD(min, -1, GETDATE()) 在我的答复中,我现在不确定的部分假定如下: 由于对列的操作,将不使用索引 由于上述原因,查询计划会有所不同(假设尚未测试,则未经测试) 由于上述原因,第一个查询实际上将比第二个查询执行得差。 我的问题: 我在推理中错过了什么吗?我对么?最后,是否有任何机构在有关SARGability方面有任何好的文章?
11 performance  linq 

2
@table_variable或#temp_table
我有一个具有129列的大用户定义表类型变量。我将一次在此表变量中存储大约2000-3000条记录,并将其传递给各种存储过程和函数以获取其他数据并进行修改。然后,这些其他数据和新的修改将存储在相同类型的新表变量中,并通过OUTPUT参数返回到源存储过程。(这是因为表类型参数只能作为传递READONLY。) 这是我的伪代码: SP1 @tmp tableType { INSERT @tmp EXEC SP2 (@tmp) INSERT @tmp EXEC SP3 (@tmp) } 我应该使用a @table_variable还是#temp_table?

1
非企业版和性能的noexpand提示
我必须使用索引视图才能达到性能。从该比较表中可以看出,标准版不支持索引视图。但是BOL说: 可以在任何版本的SQL Server中创建索引视图。在SQL Server Enterprise中,查询优化器会自动考虑索引视图。要在所有其他版本中使用索引视图,必须使用NOEXPAND表提示。 这样行得通吗(我在说性能) select * from dbo.OrderTotals with (noexpand, index=IXCU_OrderTotals) 在SQL Server Standard Edition上正常运行 select * from dbo.OrderTotals 对企业一? 这是查看代码: CREATE VIEW dbo.OrderTotals WITH SCHEMABINDING AS select OrderId = r.OrderId , TotalQty = SUM(r.Quantity) , TotalGrossConsid = SUM(r.Price * r.Quantity) , XCount = COUNT_BIG(*) from dbo.Order r …

2
数据库何时在事务中更新其索引?
我试图了解插入中同时涉及索引和事务的事件顺序。 例如,Oracle文档指出: 如果在加载数据之前创建[或具有]一个或多个索引,则数据库必须在插入每一行时更新每个索引。 但是,如果我创建一个事务,插入五行,然后提交,会发生什么?是否为每个插入或仅在提交点更新索引? 逻辑告诉我,它们只会在提交点进行更新,因为在提交那些记录之前,更新的索引可能无法使用。但这是真的吗? 如果是这样,当我要插入100万行时,为了获得最佳性能,我应该对所有行进行一次大型提交,而不是对10万条记录进行10次事务处理?当然,我意识到,如果第999,999行失败,则存在更大的回滚风险。 抱歉,如果我的术语有点用完。我不是行业DBA。尽管对Oracle和Postgres是我最常使用的数据库,但是我对特定数据库的兴趣不大,与一般数据库无关。我已经搜索了这个主题,但找不到真正的答案。

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.