小编Mol*_*mby的帖子

慢速运行查询,CF 9和MSSQL 2008; 腐败的执行计划?

我多年来一直在研究Coldfusion/MS SQL,这是我见过的最奇怪的问题之一.问题本身已经解决,但我真的不明白发生了什么; 这个问题试图清楚地了解可能的原因.

问题

在稳定的生产环境中,没有明显的原因,一个查询开始返回大约1,000-1,500毫秒(比通常慢大约10倍).我能够把它分离出来:

<cfquery datasource="#ds#" name="query">
   select 1
   from eLearning.v_courseCompletion cc
   where 
      cc.memberIncId = <cfqueryparam value="3" cfsqltype="cf_sql_integer"> and
      cc.courseId = <cfqueryparam value="25" cfsqltype="cf_sql_integer"> and 
      cc.currentCourseCompleted = 1
</cfquery>
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这种行为在循环中会加剧,即使只有一次迭代,就像在这个例子中一样:

<cfloop from="1" to="1" index="i">
   <cfquery datasource="#ds#" name="query">
      select 1
      from eLearning.v_courseCompletion cc
      where 
         cc.memberIncId = <cfqueryparam value="3" cfsqltype="cf_sql_integer"> and
         cc.courseId = <cfqueryparam value="25" cfsqltype="cf_sql_integer"> and 
         cc.currentCourseCompleted = 1
   </cfquery>
</cfloop>
Run Code Online (Sandbox Code Playgroud)

这应该和上面完全一样,对吗?循环应该没有效果,但相反,此测试运行速度慢约10倍,返回7,000-16,000毫秒.这就是问题的检测方法; 如果循环迭代超过5或6次请求将超时,则从循环体调用查询(隐藏在对象方法中).

对我而言,这表明Coldfusion方面存在问题,但重新启动服务,或者确实是机器,什么也没做.

同时,一旦被隔离,我注意到对查询本身进行任何更改都会导致性能恢复到预期的水平,大约150-190毫秒.例如:

  • 更改选定的字段(即.select *)
  • 删除表别名(cc)
  • <cfqueryparam>用内联值替换
  • 删除任何条件

这些更改中的任何一个"修复"了问题,但在运行原始查询时,性能问题将会返回.

解决方案

在这一点上,我猜测查询的执行计划已经损坏或者其他东西,做了 …

coldfusion sql-server-2008 coldfusion-9

7
推荐指数
1
解决办法
666
查看次数

无法使用 MongoDB 配置 Keystone 6

我正在尝试使用 MongoDB 作为数据库来设置 Keystone。运行后keystone-next,该命令出错并显示以下错误消息:Error: Invalid db configuration. Please specify db.provider as either "sqlite" or "postgresql" at getDBProvider

他们的文档中没有明确说明db.provider使用 MongoDB 作为数据库时要传递哪些值。

以下是 的内容keystone.ts

import { config, createSchema } from '@keystone-next/keystone/schema'
import 'dotenv/config'

const databaseUrl =
  process.env.DATABASE_URL || 'mongodb://localhost/keystone-project'

const sessionConfig = {
  maxAge: 60 * 60 * 24 * 90,
  secret: process.env.COOKIE_SECRET || 'keystone-project-secret'
}

export default config({
  server: {
    cors: {
      origin: [process.env.FRONTEND_URL],
      credentials: true
    }
  },
  db: {
    provider: 'mongoose',
    url: …
Run Code Online (Sandbox Code Playgroud)

mongodb keystonejs keystonejs6

4
推荐指数
1
解决办法
2885
查看次数

ApolloError:this.cache.batch不是一个函数

尝试在 Apollo/client 3.4.1 上进行一些身份验证突变,但出现此错误:


ApolloError: this.cache.batch is not a function
    at new ApolloError (/var/task/node_modules/@apollo/client/errors/errors.cjs.js:35:28)
    at Object.error (/var/task/node_modules/@apollo/client/core/core.cjs.js:1073:90)
    at notifySubscription (/var/task/node_modules/zen-observable/lib/Observable.js:140:18)
    at onNotify (/var/task/node_modules/zen-observable/lib/Observable.js:179:3)
    at SubscriptionObserver.error (/var/task/node_modules/zen-observable/lib/Observable.js:240:7)
    at /var/task/node_modules/@apollo/client/utilities/utilities.cjs.js:1015:40
    at processTicksAndRejections (internal/process/task_queues.js:95:5) {
  graphQLErrors: [],
  clientErrors: [],
  networkError: TypeError: this.cache.batch is not a function
      at QueryManager.refetchQueries (/var/task/node_modules/@apollo/client/core/core.cjs.js:1601:24)
      at QueryManager.markMutationResult (/var/task/node_modules/@apollo/client/core/core.cjs.js:1136:18)
      at /var/task/node_modules/@apollo/client/core/core.cjs.js:1043:49
      at both (/var/task/node_modules/@apollo/client/utilities/utilities.cjs.js:1004:53)
      at /var/task/node_modules/@apollo/client/utilities/utilities.cjs.js:997:72
      at new Promise (<anonymous>)
      at Object.then (/var/task/node_modules/@apollo/client/utilities/utilities.cjs.js:997:24)
      at Object.next (/var/task/node_modules/@apollo/client/utilities/utilities.cjs.js:1005:49)
      at notifySubscription (/var/task/node_modules/zen-observable/lib/Observable.js:135:18)
      at onNotify (/var/task/node_modules/zen-observable/lib/Observable.js:179:3),
  extraInfo: undefined
}

Run Code Online (Sandbox Code Playgroud)

graphql apollo-client

3
推荐指数
1
解决办法
3107
查看次数

为 Keystone 中的字段设置动态默认值(对于 url slug)

我对 GraphQL 和无头 CMS 的概念完全陌生,只从头开始构建了自己的 REST API。

我已经使用 Keystone v6 构建了一个基本 API,可以说我有一个产品架构,如下所示:

export const Item = list({
  fields: {
    name: text({ validation: { isRequired: true } }),
    description: text(),
    photos: relationship({
      ref: 'ProductImage.listing',
      many: true,
    }),
    category: relationship({
      ref: 'Category.listings',
      many: false,
    }),
    dateCreated: timestamp({
      defaultValue: { kind: 'now' },
    }),
    brand: text(),
    model: text(),
    size: text(),
    slug: text(),
  },
});
Run Code Online (Sandbox Code Playgroud)

酷,有效......现在说我希望在使用诸如““this-item-name”+“-”+“id””之类的内容创建产品时自动填充 slug,我无法弄清楚/如何这样做或 b/ 甚至从惯例的角度来看。

我的假设是我会使用defaultValue文本字段的属性?或者这是否与突变有关(我还没有很好地理解这个概念)……如果是这样,我无法弄清楚在样板 Keystone 应用程序中我什至会编写突变。

非常感谢任何指点。

typescript graphql keystonejs

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

在非交互式环境中更新 Keystone 项目的 Prisma、GraphQL 和数据库架构

我正在构建一个正在部署 keystone.js 服务器的 github 操作事件

\n

构建运行时,系统会提示用户回答问题

\n
\xe2\x9e\x9c  server git:(test-me) npm run build\n\n> keystone-app@1.0.0 build\n> keystone build\n\nYour Prisma and GraphQL schemas are not up to date\n\xe2\x9c\x94 Would you like to update your Prisma and GraphQL schemas? \xe2\x80\xa6 no\n
Run Code Online (Sandbox Code Playgroud)\n

我的问题是如何配置工作流程,以便在运行时它会回答“是”?

\n

谢谢!

\n

keystonejs github-actions

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