问题标签 [database-tuning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
27 浏览

oracle10g - 我需要关于查询调优技术的建议

作为view_x一个视图,它试图从其他来源获取数据(@othertable_dblink

我在 b1 上有索引。但由于 view_x 是一个视图,我没有权限在其上创建索引。

注意:因此,mytable 和 mytable2 会出现“表访问已满”之类的错误

我的问题:我怎样才能减少这方面的时间,不允许它去“表访问已满”

如果有任何查询调优技术,请告诉我。

0 投票
2 回答
1244 浏览

performance - 要设置的 Oracle 兼容参数

将 Compatible Parameter 设置为 11.2.0.0 和 11.2.0.4 有什么区别吗?有什么优点/缺点吗?

0 投票
1 回答
453 浏览

performance - Neo4j 2.0.1 企业版:性能问题

我很高兴在我的系统上使用以下配置的 neo4j 1.8.1 社区版一段时间。

系统规格:

  • 操作系统:32 位 Ubuntu 12.04.3 LTS。内核版本 3.2.0-52-generic-pae #78-Ubuntu
  • 内存:4GB
  • 交换:8GB(交换文件 - 不是分区)
  • 处理器:Intel® Core™ i5-2430M CPU @ 2.40GHz - 四核
  • 硬盘:500GB 希捷 ATA ST9500420AS。双启动 - Ubuntu 使用 100GB,其余由全能的 Windows 7 使用。

当我切换到 neo4j 2.0.1 企业版时,我的应用程序的响应时间变慢了 4 倍。因此,按照http://docs.neo4j.org/chunked/stable/embedded-configuration.html中的建议,我开始调整我的文件系统、虚拟内存、I/O 调度和 JVM 配置。

性能调优

  • 启动 Neo4j 作为具有最高调度优先级的服务器(好值 = -20)

  • 在 /etc/sysctl.conf 中设置 vm.dirty_background_ratio=50 和 vm.dirty_ratio=80 以减少频繁将脏内存页面刷新到磁盘。

  • 按照 Neo4j 启动中的建议,将打开文件的最大数量从 1024 个增加到 40,000 个。

  • 在 /etc/fstab 中为 neo4j ext4 分区设置 noatime,nodiratime,这样每次有文件/目录访问时 inode 就不会更新。

  • 如http://www.cyberciti.biz/faq/linux-change-io-scheduler-for-harddisk/中所述,将 I/O 计划从“cfq”更改为“noop”

  • JVM 参数:简而言之,最大堆大小为 1GB,neostore 内存映射文件大小为 425 MB。

    Xms 和 Xmx 为 1GB。GC 到 Concurrent-Mark-Sweep。neostore.nodestore.db.mapped_memory=25M,neostore.relationshipstore.db.mapped_memory=50M neostore.propertystore.db.mapped_memory=90M neostore.propertystore.db.strings.mapped_memory=130M neostore.propertystore.db.arrays.mapped_memory=130M

可悲的是,这没有任何区别。我编写了一个简单的脚本,它在这些节点之间创建 N 个节点和 M 个随机关系,以获得更好的图像。

Neo4j 1.8.1 社区版,带有 oracle java 版本“1.6.0_45”:

Neo4j 2.0.1 企业版,带有 oracle java 版本“1.7.0_51”:

以上结果是在 2 次热身运行后得出的。2.0.1 的结果似乎比 1.8.1 慢。任何有关调整相关配置以提高 neo4j 2.0.1 性能的建议都将受到高度赞赏。

编辑 1

所有查询都是通过 Everyman Neo4j 包装器使用 Gremlin 发出的。

http://grokbase.com/p/gg/neo4j/143w1fen8c/gremlin-plugin-extremely-slow-on-neo4j-2-0-1

与此同时,我迁移到 neo4j-enterprise-edition-1.9.6(2.0.1 之前的下一个最近稳定版本),一切恢复正常

0 投票
0 回答
740 浏览

sql-server-2012 - MS sql 2012 调整过程意外退出。DTA引擎

我正在使用Windows Server 2012SQL 2012 女士

我正在运行数据库优化顾问和设置:

  1. 顾问计划缓存。

  2. 数据库工作量master

  3. 检查我的数据库中的所有表。

几秒钟后启动工具时,我得到:

MS sql 2012 调整过程意外退出。数据引擎。

经过一番“谷歌搜索”后,我发现我应该安装 service pack 1 MS sql server。所以我做到了。

结果相同。

如果有人经历过这样的事情,请告诉我。

谢谢你的时间。

0 投票
1 回答
311 浏览

sql-server - 无需非规范化的自联接的 SQL Server 数据库调整

我有一个 TPC-H 数据库和工作负载,我正在处理以下查询(TPC-H 中的查询 21):

该查询对原始查询进行了轻微修改,只是为了使问题更清楚。查询的想法是找到让多供应商订单等待的供应商名称。查询标识给定国家的供应商。该查询的主要问题是识别多供应商订单,这基本上是存在条件。

如果我创建以下索引:

我得到了很好的查询计划,结果如下:

搜索具有多个唯一供应商的订单的任务需要一半以上的时间。它可以在 LINEITEM 的许多逻辑读取中观察到,在查询计划中(自联接估计有 79% 的成本),我还测试了删除导致一半 CPU 时间的存在子句。无法为此子查询创建索引视图,因为它包含自联接。我想在不进行非规范化的情况下实现最大性能。你知道如何进一步提升这个查询的性能吗?感谢您的任何见解。


我只是添加了查询计划的文本表示:

0 投票
0 回答
1604 浏览

sql - 调整过程意外退出。(DTAEngine)

我尝试针对多个跟踪文件运行优化顾问,并不断收到错误“优化过程意外退出。(DTAEngine)。

服务器正在运行 SQL 2012 SP1 CU9。我尝试以系统管理员和对服务器上所有数据库具有所有者访问权限的用户身份运行,但不是系统管理员。

到目前为止我能找到的唯一信息是更新到 SP1 CU1,但我已经在 CU9 上。

你能指出我可以尝试的其他任何事情吗?

0 投票
0 回答
82 浏览

mysql - MySQL:缓冲池实例查找

在 MySQL V5.5.38 中,我有两个缓冲池实例,当执行预热 sql 时,来自特定表的数据在两个实例之间拆分(使用 innodb_buffer_page 表标识)。现在,当我在 where 子句中使用非索引列执行查询时,它如何决定要搜索哪个缓冲池实例?

如果我们要查找的数据不在特定实例中,(1)它是否将其加载到该实例或(2)它是否在访问磁盘之前搜索另一个实例?

有关此主题的任何信息都会有所帮助。

0 投票
0 回答
1354 浏览

sql-server - 由于惰性索引假脱机,查询非常慢

在功能强大的机器上,SQL Server 查询运行得太慢。

在执行计划中,我可以看到大部分时间都花在了“惰性索引假脱机”过程中。在查询中,一些聚合函数用于计算值。

如何加快查询速度(机器资源足够)?

提前致谢。

0 投票
1 回答
543 浏览

sql-server - 检查可空列是否稀疏或不在 SQL Server 中查询

如何检查列是否已设置为稀疏

我知道如何在创建或更改表时添加稀疏

并且可以对稀疏列执行稀疏查询。但不确定它可能造成的任何危害。只是想知道有没有办法检查该列是否已设置为稀疏?

基本上,我正在尝试创建一个脚本来确定 sql server 的兼容性级别,如果它支持 Sparse,那么它将检查“列是否已经稀疏”,如果没有,则需要更改列并添加疏。如果可以确定NULL百分比会更好。

0 投票
0 回答
419 浏览

sql-server - SQL Server 大量单次使用对象

我们有一个包含大约 50-60% 重新编译的数据库。该值来自 [SQL Compilations/sec] 加上 [Batch Requests/sec]。

我们认为这个值有点高

如果我们看一下这个查询:

如果将它与执行计数进行比较,我们没有很多 plan_generation_num。我们确实有很多一次性物品,我想弄清楚为什么?

我们的应用程序是在 ASP.NET 中构建的,我们总是使用参数化查询。我们在应用程序中同时使用 SP 和 SQL 语句,但总是参数化。

在这个数据库上运行的网页是一个相当大的网站,每天有大约 500 000 次浏览量,如果这些信息有帮助的话,每分钟大约有 10 000 次请求。

我们没有长时间运行的查询和索引,并且统计数据是有序的。这是最后要优化的事情之一。

CPU 平均为 15%,内存约为 100 GB,当然会被 SQL 服务器用完。我们使用 SQL Server 2014 企业版。

我开始想知道的一件事。如果我有这样的 sql 语句

这个计划不会被重用,因为我们没有在这部分设置参数:**AND Active = 1 **

关于如何了解为什么我们有这么多一次性使用的任何想法?缓存计划的计数约为 20 000。相比之下,我们有大约 700 sp' 和应用程序中的更多查询。