我正在尝试在我们的服务器上启用慢查询日志记录,以便识别任何可以使用优化的查询。听起来很简单,但是我的文件没有被写入。我没有收到任何错误或类似的信息,它似乎没有记录缓慢的查询。我记得在我的配置更改后重新启动 mysql。
我使用的是 MySQL Ver 5.1.61 。这是我在 my.cnf 中的内容:
slow-query-log=1
slow-query-log-file=/var/logs/my.slow.log
long_query_time=1
Run Code Online (Sandbox Code Playgroud)
文件 /var/logs/my.slow.log 有 mysql 作为所有者,也是为了调试,我对日志文件中的所有内容进行了读/写。
我在上面将 long_query_time 设置为 1,因为我只想看看它是否有效。我试过将它设置得更低(例如 0.3),但我仍然没有得到任何记录。我知道我的应用程序运行的查询需要超过 1 秒的时间,而且我还特意SELECT sleep(10);在终端中运行了日志查询 ( ) 以进行测试,但日志仍然是空的。
我已经浏览了文档,从我所看到的这应该是有效的。有人对我做错了什么有任何建议吗?任何建议将不胜感激,非常感谢!
编辑:如评论中所问,我运行了查询:
`SELECT variable_value FROM information_schema.global_variables WHERE variable_name IN ('slow_query_log','slow_query_log_file','long_query_time');`
Run Code Online (Sandbox Code Playgroud)
结果:
10.0000000
/var/run/mysqld/mysqld-slow.log
OFF
Run Code Online (Sandbox Code Playgroud)
显然我的配置更改没有被考虑在内,因为我相信这些是默认值。我很确定我正在修改的 my.cnf 文件正在被解析,就好像我输入了一个无效值,mysql 在重启时会出错。这里会发生什么?
另一个编辑:
在接受@RolandoMySQLDBA 的建议并将我的慢查询配置行移到[mysqld]我的设置下后,似乎正在节省。现在上述 variable_value 查询的结果是:
1.0000000
/var/logs/my.slow.log
ON
Run Code Online (Sandbox Code Playgroud)
但是我仍然没有看到文件 my.slow.log 被写入。我认为这不是权限问题,因为该文件归 mysql 所有,并且我已为该文件的所有用户添加了所有权限。谁能想到这行不通的原因?
编辑:解决了!慢查询日志的路径不正确,它应该是 /var/log/my.slow.log 而不是 /var/log* s */my.slow.log 。感谢大家的帮助,我学会了allot!
如果所有连接都提供相同的结果,哪个连接性能更好?例如,我有两个表employees(emp_id,name, address, designation, age, sex)和work_log(emp_id,date,hours_wored). 获得一些特定的结果inner join并left join给出相同的结果。但是,我还有一些疑问,不仅限于这个问题。
我在 Postgres 数据库中有 4 亿行,表有 18 列:
id serial NOT NULL,
a integer,
b integer,
c integer,
d smallint,
e timestamp without time zone,
f smallint,
g timestamp without time zone,
h integer,
i timestamp without time zone,
j integer,
k character varying(32),
l integer,
m smallint,
n smallint,
o character varying(36),
p character varying(100),
q character varying(100)
Run Code Online (Sandbox Code Playgroud)
列e、k和n都是 NULL,它们根本不存储任何值,此时完全没用。它们是原始设计的一部分,但从未被移除。
编辑 - 大多数其他列都是非 NULL。
问题:
如何计算这对存储的影响?它是否等于列的大小 * 行数?
删除这些空列会显着提高该表的性能吗?页面缓存能够容纳更多行吗?
postgresql performance database-design storage disk-space postgresql-performance
我们试图找出运行缓慢的 sql server 查询从其中一个数据库中命中/获取数据的根本原因,大小为 300 GB,托管在具有以下配置的服务器上:
Windows server 2003 R2, SP2, Enterprise Edition, 16 GB RAM, 12 CPU'S 32 Bit
SQL Server 2005,SP4,企业版,32 位。
我们已经通知企业升级到 64 位,这需要一个多月的时间。
但是对于当前的问题,我们正在尝试收集数据,如果我们可以解决内存压力或最终得出增加RAM的结论。
已完成操作:重新索引和更新统计信息适用于此数据库。
如下所示,过去 5 天我们一直在注意到信号量等待类型,在加载时间运行:

以下查询后的信息很少:缓冲区大小= 137272
SELECT SUM(virtual_memory_committed_kb)
FROM sys.dm_os_memory_clerks
WHERE type='MEMORYCLERK_SQLBUFFERPOOL'
Run Code Online (Sandbox Code Playgroud)
和信号量内存 = 644024 每个以下查询
SELECT SUM(total_memory_kb)
FROM sys.dm_exec_query_resource_semaphores
Run Code Online (Sandbox Code Playgroud)
下面是一些更多的信息,从采集dm_exec_query_resource_semaphores和sys.dm_exec_query_memory_grantsDMV的

所以从上面收集的信息和每个 SP_Blitz 数据资源信号量似乎是问题所在。
与可用的 16 GB RAM 相比,为资源信号量 ID 分配的内存“target_memory_kb”是否太低。
注意*每次运行 8 小时的分析“target_memory_kb”始终低于 1 GB,而可用 16 GB?
这里可能是什么问题以及如何解决,请提出建议
谢谢
我想知道有没有其他方法可以在不记录慢查询的情况下检查我们的慢查询。假设,我有一个非常繁忙的服务器无法记录太多以节省内存和 I/O。那么,有没有其他方法可以检查我的查询速度是否慢?我知道,我们可以对查询进行分析,但仍然不确定究竟要做什么来确定哪个查询占用了大部分时间和内存。
刚开始 mysql 管理,不知道如何处理。任何指导将不胜感激。
设置:
create table dbo.T
(
ID int identity primary key,
XMLDoc xml not null
);
insert into dbo.T(XMLDoc)
select (
select N.Number
for xml path(''), type
)
from (
select top(10000) row_number() over(order by (select null)) as Number
from sys.columns as c1, sys.columns as c2
) as N;
Run Code Online (Sandbox Code Playgroud)
每行的示例 XML:
<Number>314</Number>
Run Code Online (Sandbox Code Playgroud)
查询的任务是计算T指定值为 的行数<Number>。
有两种明显的方法可以做到这一点:
select count(*)
from dbo.T as T
where T.XMLDoc.value('/Number[1]', 'int') = 314;
select count(*)
from dbo.T as T
where T.XMLDoc.exist('/Number[. eq 314]') = …Run Code Online (Sandbox Code Playgroud) performance xml sql-server execution-plan sql-server-2012 query-performance
我有items以下架构的表(在 postgres v9.3.5 中):
Column | Type | Modifiers | Storage
-----------+--------+----------------------------------------------------+----------
id | bigint | not null default nextval('items_id_seq'::regclass) | plain
data | text | not null | extended
object_id | bigint | not null | plain
Indexes:
"items_pkey" PRIMARY KEY, btree (id)
"items_object_id_idx" btree (object_id)
Has OIDs: no
Run Code Online (Sandbox Code Playgroud)
当我执行查询时,它会挂起很长时间:
SELECT * FROM "items" WHERE "object_id" = '123' ORDER BY "id" DESC LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
在 VACUUM ANALYZE 之后,查询执行改进了很多,但仍然不完美。
# EXPLAIN ANALYZE SELECT * FROM "items" WHERE "object_id" …Run Code Online (Sandbox Code Playgroud) 我对一个有 1.5M 行的表有一个相对简单的查询:
SELECT mtid FROM publication
WHERE mtid IN (9762715) OR last_modifier=21321
LIMIT 5000;
Run Code Online (Sandbox Code Playgroud)
EXPLAIN ANALYZE 输出:
Run Code Online (Sandbox Code Playgroud)Limit (cost=8.84..12.86 rows=1 width=8) (actual time=0.985..0.986 rows=1 loops=1) -> Bitmap Heap Scan on publication (cost=8.84..12.86 rows=1 width=8) (actual time=0.984..0.985 rows=1 loops=1) Recheck Cond: ((mtid = 9762715) OR (last_modifier = 21321)) -> BitmapOr (cost=8.84..8.84 rows=1 width=0) (actual time=0.971..0.971 rows=0 loops=1) -> Bitmap Index Scan on publication_pkey (cost=0.00..4.42 rows=1 width=0) (actual time=0.295..0.295 rows=1 loops=1) Index Cond: (mtid = 9762715) -> Bitmap Index Scan on …
我有一个查询,它在SQL Server 2012中运行800 毫秒,在 SQL Server 2014中运行大约170 秒。我认为我已经将范围缩小到Row Count Spool运营商的基数估计不佳。我已经阅读了一些关于假脱机操作符的内容(例如,这里和这里),但我仍然无法理解一些事情:
Row Count Spool运算符?我认为正确性没有必要,那么它试图提供什么特定的优化?Row Count Spool操作符的连接会删除所有行?注意:我可以将查询重写为 aLEFT JOIN或向表添加索引,以便在 SQL Server 2012 和 SQL Server 2014 中实现可接受的性能。所以这个问题更多地是关于深入理解这个特定的查询和计划,而不是关于如何用不同的方式表达查询。
慢查询
请参阅此 Pastebin以获取完整的测试脚本。这是我正在查看的特定测试查询:
-- Prune any existing customers from the set of potential new customers
-- This query is much slower than …Run Code Online (Sandbox Code Playgroud) performance sql-server sql-server-2014 cardinality-estimates query-performance
我已经开始对 2012 SQL Server 上的各种活动进行一些长期跟踪,我注意到在增量备份期间批量请求有所增加。
举个例子,正常的日常我们大约每秒 10-20 个批处理请求,但在我们的差异备份运行期间,它跃升至每秒 100-130 个。
我知道这不是很多,但它让我好奇它增加了 10 倍是怎么回事。
不确定您可能需要哪些信息来帮助解决此问题。
performance ×10
sql-server ×4
mysql ×3
slow-log ×3
postgresql ×2
backup ×1
disk-space ×1
hibernate ×1
join ×1
optimization ×1
storage ×1
subquery ×1
xml ×1