我试图理解SELECT xact_commit FROM pg_stat_database;
根据文档,它是“该数据库中已提交的事务数”。但我打开了记录所有查询 ( log_min_duration = 0
) ,似乎除了xact_commit
查询之外还有其他东西会影响。例如,连接psql
客户端或键入BEGIN;
会将其增加不同的值。我的应用程序中有一个步骤运行单个查询(如日志所确认),但始终将计数器增加 15-20。有谁知道有关 中 的计算内容的更具体信息xact_commit
,或者是否有一种方法仅计算实际查询?
使用Neo4j 1.9.9.我们运行的一些Cypher查询似乎过于缓慢.一些调查显示:
在我的硬件(MacBook Pro)上删除200k节点大约需要2-3秒,当我选择它们时:
START n=node(*) DELETE n
Run Code Online (Sandbox Code Playgroud)添加WHERE子句不会显着减慢它的速度
如果使用索引选择节点,则它具有类似的性能,例如
START n=node:__types__(className="com.e2sd.domain.Comment") DELETE n
Run Code Online (Sandbox Code Playgroud)除了在重复之前的测试时,它的速度是20倍或更慢,实际时间从80秒到几百秒不等.更奇怪的是,无论我是在同一个JVM中重复测试还是启动新程序,或者清除数据库中的所有节点并验证它是否为零节点都无关紧要.基于索引的删除在任何后续测试运行中都非常慢,直到我破坏了我的neo4j数据目录
rm -R target/neo4j-test/
Run Code Online (Sandbox Code Playgroud)我将在这里给出一些示例Scala代码.我很乐意根据需要提供更多细节.
for (j <- 1 to 3) {
log("Total nodes in database: " + inNeo4j( """ START n=node(*) RETURN COUNT(n) """).to(classOf[Int]).single)
log("Start")
inNeo4j(""" CREATE (x) WITH x FOREACH(i IN RANGE(1, 200000, 1) : CREATE ({__type__: "com.e2sd.domain.Comment"})) """)
rebuildTypesIndex()
log("Created lots of nodes")
val x = inNeo4j(
"""
START n=node:__types__(className="com.e2sd.domain.Comment")
DELETE n
RETURN COUNT(n)
""").to(classOf[Int]).single
log("Deleted x nodes: " + …
Run Code Online (Sandbox Code Playgroud) 我们运行此代码:
scheduler.schedule(1 minute, 1 minute) { triggerOperations.tick() }
Run Code Online (Sandbox Code Playgroud)
在启动我们的应用程序时,scheduler是一个Akka actorSystem.scheduler.如果tick()抛出异常,则永远不会再调用它!
我检查了文档,但找不到任何预期的声明.大多数描述是"安排一个函数以初始延迟和频率重复运行",没有提到如果函数抛出一个激活,任务将停止触发.
我们的akka版本是2.3.2.
http://doc.akka.io/docs/akka/2.3.4/scala/scheduler.html http://doc.akka.io/api/akka/2.0/akka/actor/Scheduler.html
这种行为有望吗?是否记录在任何地方?