我的查询缓存设置如下:
mysql> SHOW GLOBAL STATUS LIKE 'Q%';
+-------------------------+----------+
| Variable_name | Value |
+-------------------------+----------+
| Qcache_free_blocks | 2270 |
| Qcache_free_memory | 6580864 |
| Qcache_hits | 12802676 |
| Qcache_inserts | 2094054 |
| Qcache_lowmem_prunes | 111676 |
| Qcache_not_cached | 137257 |
| Qcache_queries_in_cache | 7559 |
| Qcache_total_blocks | 18240 |
| Queries | 15571718 |
| Questions | 15571715 |
+-------------------------+----------+
Run Code Online (Sandbox Code Playgroud)
如您所见,我的 值相当高Qcache_lowmem_prunes,但我仍然有相当多的可用内存(总共 32MB 查询缓存大小中的 6MB)
我想看看是否可以进一步减少Qcache_lowmem_prunes.
我应该使用较低的值query_cache_min_res_unit吗?(现在是 4096)
我有一个 Java/JDBC 程序,它获取一个示例文件并将数据导入数据库,将其分解为多个关系。该程序针对几种不同的表示多次执行此操作,其中一种使用大对象。我可以分享这些表示的更多细节,但它们很长并且与这个问题无关,因为我正在寻找一些通用的东西。
我想通过在每次导入后检查数据库的大小来比较这些不同表示的大小。该数据库位于 PostgreSQL 9.4 本地 Windows 服务器实例上,没有其他用户和默认配置。它的唯一目的是进行这个测试。
我最初的计划是这样的:
for each representation {
call VACUUM ANALYZE
record old DB size with SELECT pg_tablespace_size('pg_default');
import data into database
call VACUUM ANALYZE
record new DB size with SELECT pg_tablespace_size('pg_default');
store storage cost as new DB size - old DB size
}
Run Code Online (Sandbox Code Playgroud)
显然这种方法有局限性,但我的期望是对于大文件(~100MB),报告的存储成本应该是合理的近似值。请注意,我使用pg_tablespace_size是为了包含主架构之外的数据的贡献,例如大对象(inpg_catalog.pg_largeobject和pg_catalog.pg_largeobject_metadata)。
我想知道这是否是一种正确的方法,以及是否有更好的方法。我不确定是否VACUUM ANALYZE正确更新了 使用的统计信息pg_tablespace_size,即使它是在同一会话中调用的。如果我可以避免调用VACUUM ANALYZE,也会更好,因为这需要以超级用户身份连接才能运行pg_catalog关系。
有什么想法吗?
我正在尝试从备份表中恢复一个分区。两个表都有同名的分区。我的目标是从备份表分区 x 中抓取数据并将其放入原始表分区 x。x 是分区的名称。
我试图通过使用辅助表来做到这一点。有没有办法直接交换它们或任何其他性能更好的解决方案?
performance oracle oracle-11g-r2 plsql partitioning performance-tuning
互联网上有查询发现坏索引
虽然他们的逻辑很简单
如果写入计数 > 读取计数 = 坏索引
这是一个示例查询
SELECT OBJECT_NAME(s.object_id) AS 'Table Name',
i.name AS 'Index Name',
i.index_id,
user_updates AS 'Total Writes',
user_seeks + user_scans + user_lookups AS 'Total Reads',
user_updates - ( user_seeks + user_scans + user_lookups ) AS 'Difference'
FROM sys.dm_db_index_usage_stats AS s WITH ( NOLOCK )
INNER JOIN sys.indexes AS i WITH ( NOLOCK ) ON s.object_id = i.object_id
AND i.index_id = s.index_id
WHERE OBJECTPROPERTY(s.object_id, 'IsUserTable') = 1
AND s.database_id = DB_ID()
AND user_updates > ( user_seeks …Run Code Online (Sandbox Code Playgroud) performance sql-server optimization index-tuning sql-server-2014 performance-tuning
在我的数据库上运行 sp_BlitzIndex 后,我发现了许多“主动索引”(https://www.brentozar.com/blitzindex/sp_blitzindex-aggressive-indexes/)。不仅如此,我还发现“积极索引”的数量正在缓慢增加。
我是一名涉足 DBA 方面的开发人员,我不知道如何从 sp_BlitzIndex 提供的有关主动索引的信息改进它们。
我可以调整单个查询的性能,但是我不知道如何找出索引变得激进时可能发生的查询,并且我假设发生锁定是因为服务器负载不足 - 这不会如果我调整单个查询,情况并非如此。
任何有关如何进一步调查的提示将不胜感激。
我们公司有 5 个不同的数据库。多个数据库中没有一个涉及或利用跨数据库连接。我们有充足的资源和预算。
我们公司正在争论:
1 个服务器实例上的 5 个数据库,
或 5 个不同服务器上的 5 个数据库。
问题:如果我们将所有内容都放在一台服务器上,可能会出现哪些具体问题、障碍问题?我的背景不是 DBA,所以想学习可以与团队讨论的示例。
背景:
公司 1 个服务器实例的论据:我们有带有故障转移群集的“资源调控器”和“AlwaysOn 可用性组”。资源调控器将处理数据库之间的内存、CPU、io 工作负载。因此,与 AlwaysOn DR 一起,它可以处理失控的查询、糟糕的设计、内存问题。
每个数据库 100GB,关键公司信息,最少 5000 万行
我们每秒处理 300 笔交易
RTO = 10 分钟
performance database-design sql-server availability-groups performance-tuning
非聚集索引使用聚集索引的键定位行与该表没有聚集索引且非聚集索引通过 RID 定位行之间是否存在性能差异?
不同级别的碎片是否也会影响这种性能比较?(例如,在这两种情况下,表的碎片率为 0%、50%、100%。)
performance sql-server clustered-index nonclustered-index bookmark-lookup performance-tuning
一个表可以同时具有聚集列存储索引和非聚集列存储索引吗?
我看到了仅将聚集列存储索引与非聚集二进制行索引一起使用的示例策略。
当我尝试创建集群列存储和非集群列存储时,我收到错误:
Msg 35339, Level 16, State 1, Line 7
Multiple columnstore indexes are not supported.
Run Code Online (Sandbox Code Playgroud) performance index sql-server columnstore sql-server-2016 performance-tuning
NEWSEQUENTIALID 在数据库中是唯一的吗?我们用 NEWSEQUENTIALID 在数据库中规划了许多表,同时插入并希望确保每个 guid 都是唯一的,无论它们是否在不同的表中。
常规 NEWID() 将保证数据库中的唯一性,并且有重复的机会是被小行星/闪电击中的机会,但是它们并不能缓解碎片问题。
这篇文章讨论了 Mac 地址,但是我想为上面特定的数据库指定问题。 /sf/ask/1988347511/
performance database-design sql-server sql-server-2016 performance-tuning
当我正在阅读和理解时,如果匹配索引以支持查询的键列以相同的方式排序,则需要避免 SQL 查询中不需要的 ORDER BY。
对于下面的数据库测试模式——
CREATE PARTITION FUNCTION DemoPartitionFunction (datetime)
AS RANGE RIGHT
FOR VALUES (DATEADD(dd, DATEDIFF(dd, 0, GETUTCDATE()), -7),
DATEADD(dd, DATEDIFF(dd, 0, GETUTCDATE()), -6),
DATEADD(dd, DATEDIFF(dd, 0, GETUTCDATE()), -5),
DATEADD(dd, DATEDIFF(dd, 0, GETUTCDATE()), -4),
DATEADD(dd, DATEDIFF(dd, 0, GETUTCDATE()), -3),
DATEADD(dd, DATEDIFF(dd, 0, GETUTCDATE()), -2),
DATEADD(dd, DATEDIFF(dd, 0, GETUTCDATE()), -1),
DATEADD(dd, DATEDIFF(dd, 0, GETUTCDATE()), 0),
DATEADD(dd, DATEDIFF(dd, 0, GETUTCDATE()), 1),
DATEADD(dd, DATEDIFF(dd, 0, GETUTCDATE()), 2),
DATEADD(dd, DATEDIFF(dd, 0, GETUTCDATE()), 3),
DATEADD(dd, DATEDIFF(dd, 0, GETUTCDATE()), 4),
DATEADD(dd, DATEDIFF(dd, 0, GETUTCDATE()), …Run Code Online (Sandbox Code Playgroud) performance index sql-server query-performance performance-tuning
performance ×10
sql-server ×7
index ×2
columnstore ×1
index-tuning ×1
jdbc ×1
mysql ×1
optimization ×1
oracle ×1
partitioning ×1
plsql ×1
postgresql ×1
query-cache ×1