标签: database-performance

如何在不输出数据的情况下测试Sql Server Mgmt Studio中的性能?

使用SQL Server Management Studio.

如何在没有结果窗口影响我的测试的情况下测试大型选择(比如600k行)的性能?所有事情都是平等的并不重要,因为两个查询都会输出到同一个地方.但我想加快我的测试周期,我认为SQL Server Management Studio的输出设置正在阻碍我.输出到文本是我目前使用的,但我希望有更好的选择.

我认为这会影响我的数字,因为数据库在我的本地盒子上.

编辑:有一个关于在这里做WHERE 1 = 0的问题(认为连接会发生但没有输出),但我测试了它并且它不起作用 - 不是查询性能的有效指标.

sql-server database-performance

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

关于MySQL的游标 - 好还是坏

我总是听到有人说使用游标很糟糕,尤其是在Microsoft SQL Server中,因为它们非常慢.MySQL上的Cursors也是这种情况吗?MySQL中的游标是否也会降低性能?有人可以请教一下MySQL中游标的用法吗?

mysql database performance cursor database-performance

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

我的mysql.general_log表太大了吗?

我刚刚升级到MySQL 5.1.6,以便利用将常规日志保存到表中的能力 - >即mysql.general_log.一旦我这样做,我立即感到惊讶,实际上有多少查询正在触及我们的系统.从第一个小时开始,我在此常规日志表中有大约40,000行.我还没有在MySQL文档中发现它是否存在一般日志表大小限制.

让这个普通日志以这个速度增长是否有问题?

如果有尺寸问题,如何处理?

是否有一些公认的做法如何处理尺寸问题?

我应该制作一个清除表格的事件并经常将数据保存到文件中吗?

非常感谢您的帮助!

mysql logging database-performance

6
推荐指数
2
解决办法
7504
查看次数

加速HBase读取响应

我在Amazon XLarge实例(16Gb RAM,4核CPU)上部署了4个节点HBase v0.90.4-cdh3u3集群,其中8Gb堆-Xmx分配给HRegion服务器,2Gb用于数据节点.HMaster\ZK\Namenode位于单独的XLarge实例上.目标数据集是1亿条记录(每条记录是10个字段,100个字节).基准测试从并行100个线程同时执行.

与YCSB团队在YCSB论文中所取得的成绩相比,我对阅读延迟感到困惑.它们的吞吐量高达7000 ops/sec,延迟为15 ms(第10页,读取延迟图表).在90%读取/ 10%写入工作负载时,我无法获得高于2000 ops/sec的吞吐量.写入非常快,禁用自动提交(响应在几毫秒内),而读取延迟平均不低于70毫秒.

这些是我使用的一些HBase设置:

  • hbase.regionserver.handler.count = 50
  • hfile.block.cache.size = 0.4
  • hbase.hregion.max.filesize = 1073741824
  • hbase.regionserver.codecs = LZO
  • hbase.hregion.memstore.mslab.enabled =真
  • hfile.min.blocksize.size = 16384
  • hbase.hregion.memstore.block.multiplier = 4
  • hbase.regionserver.global.memstore.upperLimit = 0.35
  • hbase.zookeeper.property.maxClientCnxns = 100

您建议使用哪些设置来查看\ tune以加快HBase的读取速度?

benchmarking hbase latency database-performance ycsb

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

针对字符串匹配优化的数据库/数据源?

我想存储大量(〜数千)字符串,并能够使用通配符执行匹配.

例如,以下是示例内容:

  • Folder1
  • Folder1/Folder2
  • Folder1/*
  • Folder1/Folder2/Folder3
  • Folder2/Folder*
  • */Folder4
  • */Fo*4

(每行也有附加数据,如标签,但匹配仅针对该键)

以下是我想要与数据匹配的示例:

  • Folder1
  • Folder1/Folder2/Folder3
  • Folder3

(*在这里是一个通配符,它​​可以是一个不同的角色)

我天真地考虑将它存储在MySQL表中并使用%通配符与LIKE操作符,但MySQL索引只适用于通配符左侧的字符,在我的情况下它可以在任何地方(即%/Folder3).

所以我正在寻找一种可以在PHP中使用的快速解决方案.我是开放的:它可以是一个单独的服务器,一个使用正则表达式文件的PHP库,...

php database datasource string-matching database-performance

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

如何在SQLite中存储日期时间

这非常类似于另一个被关闭的问题,而不是一个真正的问题.我试图编辑它以使其有效重新开放,但被告知我最好不要问一个新问题.

我正在开发android并需要在sqlite数据库中存储datetime值来跟踪将生成通知的重复事件.我还需要能够根据时间范围查询数据库.

SQLite的文档指出它不支持特定的日期类型但日期可以使用文本,REAL,或整型表示:

TEXT为ISO8601字符串("YYYY-MM-DD HH:MM:SS.SSS").

真实如朱利安日数,根据公历4714年11月24日格林威治中午以来的天数.

INTEGER as Unix Time,自1970-01-01 00:00:00 UTC以来的秒数.

最初的优点似乎是:

  • TEXT对于数据库中的可读性非常有用,能够在以后直接显示(无需转换),但如果需要对它们执行计算则成本很高.从时区引入可能的错误.
  • 真正适用于1970年以前的日期,适合计算或日期比较.不代表时间,只代表几天.
  • INTEGER可用于计算或日期时间比较,非常好的兼容性,因为它是一个广泛支持的标准.

这听起来不错吗?使用INTEGER作为日期时间会使查询时间范围明显快于使用TEXT时的速度吗?还有什么我还没考虑过吗?

鉴于我的用例,哪些解决方案最好?

sqlite datetime android database-performance android-sqlite

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

提高第一次查询的性能

如果执行以下数据库(postgres)查询,则第二次调用要快得多.

我想第一个查询很慢,因为操作系统(linux)需要从磁盘获取数据.第二个查询受益于文件系统级别和postgres中的缓存.

有没有办法优化数据库,以便在第一次调用时快速获得结果?

第一次通话(慢)

foo3_bar_p@BAR-FOO3-Test:~$ psql

foo3_bar_p=# explain analyze SELECT "foo3_beleg"."id", ... FROM "foo3_beleg" WHERE 
foo3_bar_p-# (("foo3_beleg"."id" IN (SELECT beleg_id FROM foo3_text where 
foo3_bar_p(# content @@ 'footown'::tsquery)) AND "foo3_beleg"."belegart_id" IN 
foo3_bar_p(# ('...', ...));
                                                                                             QUERY PLAN                                                                                 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Nested Loop  (cost=75314.58..121963.20 rows=152 width=135) (actual time=27253.451..88462.165 rows=11 loops=1)
   ->  HashAggregate  (cost=75314.58..75366.87 rows=5229 width=4) (actual time=16087.345..16113.988 rows=17671 loops=1)
         ->  Bitmap Heap Scan on foo3_text  (cost=273.72..75254.67 rows=23964 width=4) (actual time=327.653..16026.787 rows=27405 loops=1)
               Recheck Cond: (content @@ '''footown'''::tsquery)
               ->  Bitmap Index Scan on …
Run Code Online (Sandbox Code Playgroud)

sql postgresql performance disk-io database-performance

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

长数据库查询结果与并发写入同时

我很好奇.我有这样的流程:我们有大量的数据集合/表.并且有一些select长期需要3秒的定向查询.

然而,我们期待高度并发的环境,每秒我们在数据库中获得100条新记录.

所以假设我们有一个查询,在查询开始之前,我们有1000个项目满足这些查询.查询需要3秒,每秒有50个新项目与添加到数据库的查询匹配.我的问题是 - 这是这个查询返回给我的结果(它仍然是1000或1150或介于两者之间)以及它如何依赖于不同的数据库引擎(SQL,NoSQL).Ø

这不是关于确切数字的问题,而是更多 - 为什么它将是那些数字.


看起来问题有点宽泛.让我们用MySQL,Postgres,MongoDB和Cassandra限制数据库.

sql database concurrency nosql database-performance

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

使用休眠Envers加载ManyToOne关系-渴望/懒惰?

我使用的是Hibernate Envers 4.3.10.Final。我有以下两个JPA类:

public class Factory {
     private int factoryID;
     .... 
}

public class Trgs{
     private int trgsID;

     @ManyToOne(fetch=FetchType.EAGER)
     @JoinColumn(name="fk_factory")
     private Factory factory;
}
Run Code Online (Sandbox Code Playgroud)

我编写了一种方法,可重新调整所有审核的Trgs对象。

方法是:

public List<Trgs> readAuditedTrgs (List<Integer> trgsIds) {
      AuditReader reader = AuditReaderFactory.get(entityManager);
      AuditQuery query = reader.createQuery().forRevisionsOfEntity(Trgs.class, true, true);

      query.add(AuditEntity.id().in(ids));
      query.add(AuditEntity.revisionType().eq(RevisionType.ADD));
      query.addOrder(AuditEntity.revisionNumber().desc());
      return  query.getResultList() ;
}
Run Code Online (Sandbox Code Playgroud)

执行完上述方法后,我的结果是审核的运输清单。当然,每个Trgs对象都具有正确和相关的Audited Factory对象。

但是问题是,我了解到Hibernate Envers始终加载关系LAZY。

因此,在我的情况下,我必须遍历Trgs列表并初始化每个Factory对象。

 for (Trgs trgs : resultList) {
      Hibernate.initialize(trgs.getFactory());
    }
Run Code Online (Sandbox Code Playgroud)

因此,如果我有300个Trgs对象,则必须初始化300个Factory对象。这花费了太多。我必须等一分钟。

我了解到不可能过度加载Factory对象。但我需要其他解决方案。我在Dashboad网站(Web项目)中显示此数据。用户不能等待一分钟,直到加载数据。

请帮助我解决这个问题。谢谢。

java hibernate jpa database-performance hibernate-envers

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

Postgresql在内存数据库django中

对于性能问题,我想在django的内存数据库中执行优化算法(我可能会执行很多查询).我知道在内存中可以使用sqlite(如何仅在内存中运行Django的测试数据库?)但我宁愿使用postgresql,因为我们的prod数据库是postgresql数据库.

有人知道如何告诉django在内存中创建postgresql数据库吗?

提前致谢

django postgresql database-performance

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