问题标签 [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.
java - Oracle PL/SQL - 由其他团队调用的用于插入数据的过程。正在从 Java 调用过程
过程的内容 - 只有两个通过 IN 参数插入的直接插入语句。当必须插入一行时,该过程将每秒执行一次。这是一种充电。如果您充值,详细信息将由其他团队通过 java (callable statement) 发送给我们。通常当 CPU 较低时,我们可以看到该过程的 10-15 个会话(在 v$session 中)并且数据将被完美插入。当 CPU 有点高时,我们可以一次看到 80-90 个会话,每个会话在 2.3 秒后失效。在其他系统的java中插入需要时间并最终超时。
我希望我清楚这一点。有没有其他方法可以纠正这个问题。除了通过程序。我尝试在 pl/sql 中使用 RECORD 概念,但实际上什么也没发生。
我的程序看起来像这样。
sql-server - Identity(主键聚集)表中的间隙是否会影响数据库的性能?
好吧,百万美元的问题来了
假设我有下表
现在假设这张表有 200 万条记录 所以接下来identity id
是2,000,001
但是我正在进行批量删除,记录数变为 45,321 但是下一个identity id
仍然2,000,001
是
因此,重新排序表与娱乐会有所不同
在第一种情况下,将有 45,321 条记录,但身份 ID 将为 2,000,001
在第二种情况下,将再次有 45,321 条记录,但身份 ID 将为 45,322
那么这两种情况之间会有任何性能,存储等差异吗?
谢谢
SQL Server 2014
mysql - 优化 mysql my.cnf - 内存使用率非常高
我按照互联网上的一些提示调整了 mysql。
但是网站加载速度很慢,而且第一个字节的时间非常长。因此我开始调查,据我所知,这是由mysql和高内存使用引起的
每次我根据我从 ./mysqltuner.pl和./tuning-primer.sh获得的建议对 my.cnf 进行更改时, 它都会给出另一个建议。实际上,某些值应该相互平衡。我希望有人知道如何获得 mysql 的高性能使用,同时照顾服务器的健康
MariaDB 服务器版本:10.0.20-MariaDB-log MariaDB 服务器 服务器信息:Intel Core i7-3770 2x HDD 3,0 TB SATA 4x RAM 8192 MB DDR3 Cloudlinux + Cpanel 已安装 Apache/2.4.16 + eAccelerator + mod_pagespeed
这是我设置的 my.cnf 设置
postgresql - Postgres 9.4:如何在运行速度慢 10 倍的任何 ARRAY 查找中修复查询计划者对哈希联接的选择
我当然意识到找出这些问题可能很复杂并且需要大量信息,但我希望对于这种特殊情况有一个已知问题或解决方法。我已经缩小了导致次优查询计划的查询更改(这是运行 Postgres 9.4)。
以下查询运行大约 50 毫秒。该tag_device
表是一个包含约 200 万个条目的联结表,该devices
表有大约 150 万个条目,而标签表有大约 500,000 个条目(注意:实际 IP 值只是虚构的)。
有几点需要注意。 device_ip
正在使用 ip4r 模块 ( https://github.com/RhodiumToad/ip4r ) 提供 ip 范围查找,并且此列上有一个 gist 索引。上述查询使用以下查询计划在大约 50 毫秒内运行:
如果我增加正在查找的 ARRAY 中的 IP 地址数量,则查询计划会发生变化并变得非常慢。因此,在查询的快速版本中,数组中有 30 个项目。如果我将其增加到数组中的 80 个项目,则查询计划会发生变化并变得显着变慢(超过 10 倍)查询在所有其他方面保持不变。新的查询计划使用散列连接而不是合并连接和嵌套循环。当数组中有 80 个项目而不是 30 个项目时,这是新的(慢得多)查询计划。
上面带有默认查询计划的查询运行时间约为 500 毫秒(慢了 10 倍以上)。如果我关闭哈希连接,SET enable_hashjoin= OFF;
则查询计划将返回使用合并连接,并在大约 50 毫秒内再次运行,数组中有 80 个项目。
同样,这里唯一的变化是正在查找的 ARRAY 中的项目数。
有没有人对为什么规划者做出错误的选择导致大幅放缓有任何想法?
该数据库完全适合内存并位于 SSD 上。
我还想指出我正在使用 CTE,因为我遇到了一个问题,即当我在查询中添加限制时,规划器不会使用 tag_device 表上的索引。基本上这里描述的问题:http: //thebuild.com/blog/2014/11/18/when-limit-attacks/。
谢谢!
postgresql - 在 PostgreSQL 中优化顺序扫描
PostgreSQL 9.4
在一篇关于PostgreSQL服务器硬件优化的文章中表明,过多的磁头移动可能会导致性能瓶颈。据我所知,对于顺序扫描,如果具有同一张表的块的柱面尽可能靠近,它会快得多。因此,如果我们将数据插入表中,数据将按“顺序”放置在磁盘存储中,从而减少磁盘磁头移动开销。
但我认为这样的位置可能会及时中断。有没有办法postgreSQL
维持这种“集群”(如果我可以这么说的话)?
neo4j - Neo4j Cypher 查询调优
我想在 Neo4j 中提供与我为关系数据库提供的相同级别的查询调优支持。我知道许多调优问题最好通过数据设计来解决,但有时您只需要帮助优化器。Neo4j 2.2.5 中关于优化器和查询调优的文档不多,所以我希望有人能帮我回答一些关于 Neo4j 中 Cypher 查询调优的问题。
1) 优化器:在关系 DBMS 中,帮助优化器做出更好决策的一种方法是更新统计信息。我找不到有关基于成本的优化器如何做出决策的文档,但我希望它必须收集有关数据的一些统计信息,以便提供比我们从基于规则的优化器中获得的更好的答案。
一个。有没有办法更新这些统计数据?
湾。我会从我们已经加载并即将设为只读的数据库上删除和重新创建索引获得任何性能优势吗?
C。你知道关于优化器的任何文档可以帮助我理解它做出的决定吗?
2) 查询级提示:我知道 Cypher 具有索引提示选项,但在许多情况下,如果它具有与 TSQL 中可用的“强制顺序”查询提示等效的功能,那就太好了。你知道我是否应该在近期的 Neo4j 版本中对这种查询提示抱有希望?
3) 临时对象:在关系型 DBMS 中,有时我只需要让自己适应优化器的限制。在这些情况下,我们创建临时对象来具体化部分数据,以便我们可以简化查询。是否有任何迹象表明临时标签或其他一些临时对象将在近期发布的 Neo4j 中可用?
谢谢
sql - SSIS(SQL Server 集成服务)和 Teradata 易失性表。(Teradata SQL 调优)
我想了解 Modalities SQL server Integration service (SSIS) 使用什么连接到 Teradata 14
- ODBC
- 。网
- 数据库
这些或多于/少于这些。我的主要问题是如何在 SSIS 包中实现 teradata volatile 表创建语法。以上哪些支持它,它是如何完成的?谢谢你
mysql - 在 12 GB ram 中使用 21 Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz 对我的 sql 进行性能调整
您好正在尝试针对巨大流量的 Web 服务器优化 MySQL,我们使用的是 Apache 2.4 和 MySQL 5.6 版本。
我们已将这些参数放在 MySQL 配置文件中
猫 /etc/my.cnf
postgresql - Amazon RDS Postgres 上的 Group by 太慢了
我在 Amazon RDS db.r3.4xlarge 实例上运行 Postgres 9.4.4 - 16CPU,122GB 内存。我最近遇到了一个查询,它需要在一张大表(约 2.7 亿条记录)上进行相当直接的聚合。该查询需要 5 多个小时才能执行。
大表上的连接列和分组列定义了索引。我已经尝试通过将work_mem和temp_buffers设置为1GB来进行试验,但它帮助很大。
这是查询和执行计划。任何线索将不胜感激。
这是执行计划 -
performance - Amazon RDS (PostgreSQL):优化内存使用
Amazon RDS(PostrgreSQL 版本)有些东西我并不真正了解。有些查询需要很长时间才能显示结果。我已经设置了所有相关的索引(如 EXPLAIN 所示)。所以我认为这不是由于我的架构设计。
我不使用大型机器(m3.xlarge),因为较大的机器太贵了。我的数据库大小约为 300GB。
似乎 Postgres 并没有使用所有可用内存(仅 ~5GB,控制台的“可用内存”报告显示始终有 ~10GB 可用内存......)。我尝试按照tune-your-postgres-rds-instance 的建议调整我的“参数组” ,特别是将 EFFECTIVE_CACHE_SIZE 设置为 70%。但这并没有改变任何东西。
我可能在某个地方错了...知道吗?