标签: database-tuning

数据库调优顾问 - 为什么它没有给我任何结果?

我是第一次尝试使用Database Tuning Advisor.

我相信我已经解决了所有与权限相关的问题 - 需要SHOWPLAN,需要'DTA_tuninglog'的SELECT权限等.

然而,根据"建议",它没有显示任何内容.

它确实运行并且似乎正在工作,并且其输出中没有看起来很糟糕的错误,但没有给出建议.

我甚至尝试使用可怕的查询(大量的表扫描)创建一个虚拟数据库,使用索引显然可以做得更好,但它也没有显示任何建议.

也许我真正的问题是:我如何知道DTA何时实际工作,而我有一些配置问题导致它不产生输出?

有没有人有指针?



更多信息:

我正在使用'调整选项'的默认值

在数据库中使用的物理设计结构(PDS): 索引

采用分区策略: 无分区

要保留在数据库中的物理设计结构(PDS): 保留所有现有的PDS

sql-server performance sql-server-2008 database-tuning

5
推荐指数
1
解决办法
2569
查看次数

如何查看在Azure上托管的数据库上执行的查询历史记录(所有OR长期)?

对于Azure上托管的数据库,我可以查看在其上执行的查询的最近历史记录.这是通过Azure门户>数据库>管理>管理>查询性能.

不幸的是,那里发现的历史只涵盖了一小段时间(几分钟).我打算在我的数据库上创建非聚集索引,为此,需要在典型的一天获取对数据运行的真实查询的日志,而不是过去几分钟.

目前,我必须多次刷新页面并记录每次刷新的所有查询.即使这样,我在这个艰难的过程之后获得的日志只反映了执行的一小部分查询.有没有选择查看较长时期的历史记录?

谢谢.

indexing logging azure database-tuning azure-sql-database

5
推荐指数
2
解决办法
4965
查看次数

postgres聚合性能

我一直注意到Postgres(8.3)中简单聚合性能的一些问题.问题是,如果我有一个表(例如200M行),它是(customer_id,order_id)唯一的,那么查询select customer_id,max(order_id) from larger_table group by customer_id比执行以下操作的简单Java/JDBC程序慢一个数量级:

1)初始化一个空的HashMap customerMap(这将映射id - >最大订单大小)2)执行"select customer_id,order_id from greater_table",并获得一个流结果集3)迭代结果集,在每一行做类似的事情下列:

long id = resultSet.getLong("customer_id");
long order = resultSet.getLong("order_id");
if (!customerMap.containsKey(id)) 
    customerMap.put(id,order);
else 
    customerMap.put(id,Math.max(order,customerMap.get(id)));
Run Code Online (Sandbox Code Playgroud)

预计会有这种性能差异吗?我不应该想,因为我认为上面的内容与内部发生的情况非常接近.是否有证据表明db存在错误/错误调整?

sql postgresql performance aggregates database-tuning

4
推荐指数
1
解决办法
1250
查看次数

为什么SQL Server Tuning Advisor建议将PRIMARY KEY添加到索引的包含列?

我已经看过很多次了,当我在SQL Server DataBase Engine Tuning Advisor中运行一些分析时,它建议我创建索引,如:

CREATE NONCLUSTERED INDEX [_index] ON [dbo].[SomeTable] 
(
    [Column1] ASC,
    [Column2] ASC,
    [Column3] ASC
)
INCLUDE ([PrimaryKeyColumn])
Run Code Online (Sandbox Code Playgroud)

将主键(聚簇索引)列包含在列列表中是否真的重要?我一直认为它默认包含在原始行的链接中.我错了吗?

更新: 我认为同样重要的是要注意它提出了这样的查询索引,如:SELECT [PrimaryKeyColumn] FROM [dbo].[SomeTable] WHERE ... [条件] ......它确实影响了性能和执行计划.所以据我所知,索引不包含真正的"聚集索引",而只是一些链接到行.是这样吗?

sql-server indexing database-tuning

4
推荐指数
1
解决办法
1008
查看次数

要设置的Oracle兼容参数

将兼容参数设置为11.2.0.0与11.2.0.4有什么区别吗?有任何优势/劣势吗?

oracle parameters performance database-tuning

4
推荐指数
1
解决办法
1160
查看次数

撤消SQL Server数据库调整所做的更改

我不确定这里是否可以提出这个问题或者是serverfault.我在想...除了从备份中恢复之外,有没有办法快速撤消SQL Server 2005 Tuning Advsor所做的更改?

sql-server-2005 database-tuning

3
推荐指数
1
解决办法
950
查看次数

哪个数据库是面向性能的,MySQL还是MariaDB?

哪个数据库是面向性能的,MySQL还是MariaDB?

哪种存储引擎更适合以下所有方面?

  • 应该可扩展的数据库
  • 快速查询处理
  • 有社区支持
  • 有很多教程或任何其他替代品?

mysql database mariadb database-tuning

3
推荐指数
1
解决办法
2708
查看次数

MySQL查询调优 - 为什么使用变量中的值比使用文字慢得多?

更新:我在下面自己回答了这个问题.

我正在尝试修复MySQL查询中的性能问题.我认为我所看到的是,将函数的结果赋给变量,然后运行带有与该变量进行比较的SELECT相对较慢.

但是,如果为了测试,我将比较替换为变量,并将其与我知道该函数将返回的字符串文字等效值(对于给定的场景)进行比较,然后查询运行得更快.

例如:

...

SET @metaphone_val := double_metaphone(p_parameter)); -- double metaphone is user defined

SELECT 

        SQL_CALC_FOUND_ROWS
        t.col1,
        t.col2, 
        ...

    FROM table t

            WHERE

            t.pre_set_metaphone_string = @metaphone_val -- OPTION A

            t.pre_set_metaphone_string = 'PRN' -- OPTION B (Literal function return value for a given name)
Run Code Online (Sandbox Code Playgroud)

如果我使用选项A中的行,则查询速度很慢.

如果我使用选项B中的行,那么查询速度很快,就像您期望的任何简单字符串比较一样.

为什么?

mysql database-tuning query-tuning

3
推荐指数
1
解决办法
1479
查看次数

数据库调优和数据库查询优化有什么区别?

有人可以告诉我数据库调优和数据库查询优化之间的确切区别吗?

我已阅读维基百科上的以下链接:

http://en.wikipedia.org/wiki/Query_optimization

http://en.wikipedia.org/wiki/Database_tuning

根据我的理解,数据库调优似乎不是别的,而是数据库查询优化。我还是很困惑

两者到底有什么区别?

database query-optimization database-tuning

2
推荐指数
1
解决办法
3876
查看次数

加快和优化MySQL(10亿行)

我的公司有一组分析人员使用的mySQL服务器(通常一次使用3-4个)。最近,对于表数达10亿行(10 ^ 9条记录)的数据库,查询速度变慢,其中一些查询甚至需要几天的时间。

  • 服务器的主要功能: Linux OS-64 GB内存-3 TB硬盘驱动器。

我们对微调一无所知,因此欢迎使用任何工具/经验法则找出造成问题的原因或至少将其缩小。

转到Workbench studio>表检查器,我发现了我们最常使用的数据库的以下关键值:

  • 数据库大小:〜500 GB
  • 最大表大小:〜80 GB
  • 索引长度(用于最大的表):〜230 GB。该索引依赖于6个字段。
  • 几乎没有MyISAM表,全部是InnoDB

理想情况下,我想以最简单的方式微调服务器(更好),数据库(更糟)或两者(将来),以加快速度。

我的问题:

  1. 这些值(500、80、230 GB)对于中型服务器是否正常且可管理?
  2. 具有-230Gb-大小的索引比表本身大很多是正常的吗?
  3. 可以调整哪些参数/策略来解决此问题?我在考虑内存日志或购买服务器RAM,但很高兴调查任何明智的答案。

非常感谢。

mysql sql optimization database-administration database-tuning

2
推荐指数
1
解决办法
2464
查看次数

如何从外部计算机将SQL Profiler运行到SQL SERVER?

我想运行sql profiler来查看数据库Sql Server 2008的性能,但恐怕在同一台计算机上运行Profiler会影响服务器的性能,并且我不想降低服务器的速度。

很久以前,我从一个DBA那里听说,他不从他连接到sql服务器的笔记本电脑上运行探查器,但这种方式不会影响服务器的性能。

令人费解的是,我的问题是如何从外部计算机运行Sql事件探查器而不导致sql server的性能下降?

sql-server sql-server-profiler sql-server-2008 database-performance database-tuning

1
推荐指数
1
解决办法
1587
查看次数

Postgresql 性能 - 索引页点击率

我运行以下查询来估计从内存读取的索引页(缓冲区命中)与从磁盘读取的索引页的比率

select
    t.schemaname, 
    t.relname as "Table Name", 
    io_i.indexrelname as "Index Name", 
    case when (io_i.idx_blks_hit <> 0 or io_i.idx_blks_read <> 0) then 
    round(io_i.idx_blks_hit/(io_i.idx_blks_hit::numeric + 
    io_i.idx_blks_read::numeric), 4) else null end as "Index Hit Ratio" 
from 
    pg_stat_user_tables t
    join pg_statio_user_indexes io_i on io_i.relid = t.relid 
order by "Index Hit Ratio" desc;
Run Code Online (Sandbox Code Playgroud)

我有几个指数,这个比率太低(低于 0.7)。请告知可能的原因以及如何改进。

postgresql performance database-tuning database-indexes

1
推荐指数
1
解决办法
2332
查看次数