收藏
回答

云数据库接口调用警告调用时间超过3秒怎么解决?

代码很简单,没有复杂的查询,但是仍旧报调用时间超过3秒的告警。运行环境是云函数。

Database operation database.queryDocument is longer than 3s. Please check query performance and your network environment.

async function getHelpMark(result) {
  console.log("qzid:" + result.qzid)
  return new Promise(function(resolve, reject) {
    let db = cloud.database()
    let t_quizzes = db.collection('quizzes')
    t_quizzes.doc(result.qzid)
      .field({ helpMark: true })
      .get().then(res => {
        console.log(res)
        resolve({
          qzid: result.qzid,
          helpMark: res.data.helpMark
      })
    })
  })
}

看不出有什么影响效率的地方,请高手指点迷津,谢谢!

最后一次编辑于  2019-12-09
回答关注问题邀请回答
收藏

4 个回答

  • 侯衍超
    侯衍超
    2020-01-16

    这个问题是否解决了呢?我们今天突然也是出现这个问题

    2020-01-16
    有用 1
    回复 2
    • monton
      monton
      2020-01-18
      当时没有解决,修改方案了,不用这些代码。后来写其它代码发现:如果出现“database.queryDocument is longer than 3s”错误信息,原因之一是调用的async函数前面没有加上await。你可以看看是不是这个原因
      2020-01-18
      1
      回复
    • -。-
      -。-
      2020-03-24回复monton
      赞,我把Promise.all.then的结构改为,awit Promise.all就不报这个警告了
      2020-03-24
      回复
  • 罗梅光
    罗梅光
    2019-12-10

    时间不够可以在后台设置超时时间,

    2019-12-10
    有用
    回复 3
    • monton
      monton
      2019-12-10
      这个方法我知道,我主要想了解为什么会出现时间过长的问题
      2019-12-10
      回复
    • 罗梅光
      罗梅光
      2019-12-10回复monton
      新建索引没有?网络状态好不好?代码逻辑如何?都是影响时间的关键因素。
      2019-12-10
      回复
    • memory
      memory
      2020-01-23回复罗梅光
      可能是索引问题,最近几天频繁出现Database operation database.queryDocument is longer than 3s. 才4万条数据,针对字段加个索引试试,观察下。
      2020-01-23
      回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-12-10

    你云函数代码不止这个方法吧

    2019-12-10
    有用
    回复 1
    • monton
      monton
      2019-12-10
      不止这些代码,但是删除这些代码就没有时间过长的警告。
      2019-12-10
      回复
  • 李东bbsky
    李东bbsky
    2019-12-09
    .field({ helpMark:true })

    把这个给去掉,不能这么写

    2019-12-09
    有用
    回复 4
    • monton
      monton
      2019-12-10
      请问这是什么原因呢?
      2019-12-10
      回复
    • 罗梅光
      罗梅光
      2019-12-10
      2019-12-10
      回复
    • 李东bbsky
      李东bbsky
      2019-12-10回复罗梅光
      这是基于Collection引用的,基于Document是没有field方法的
      2019-12-10
      回复
    • monton
      monton
      2019-12-11回复李东bbsky
      谢谢!确实有这个问题,不过之前代码大部分时候也能执行成功,比较奇怪。改了一下代码,再看看问题是否重现。
      2019-12-11
      回复
登录 后发表内容
问题标签