当前位置: 首页 > 面试题库 >

将每个SQL查询记录到Rails 3中的数据库

太叔坚
2023-03-14
问题内容

这个问题是一个跟进这个问题,我应该把这个代码?

connection = ActiveRecord::Base.connection
class << connection
  alias :original_exec :execute
  def execute(sql, *name)
    # try to log sql command but ignore any errors that occur in this block
    # we log before executing, in case the execution raises an error
    begin
        file = File.open(RAILS_ROOT + "/log/sql.txt",'a'){|f| f.puts Time.now.to_s+": "+sql}
    rescue Exception => e
      ;
    end
    # execute original statement
    original_exec(sql, *name)
  end
end

我曾尝试将其放置在模型中,但发生的情况是,当我多次执行某些sql查询时,一旦返回“ 堆栈级别已达到深度 ”错误,就会发生这种情况。


问题答案:

将其放在config / initializers中。这很可能是因为每次在dev env中都重新加载类。该代码只需要执行一次。



 类似资料:
  • 问题内容: 我想将一些SQL查询轨道执行的操作保存到日志文件中(即CREATE,UPDATE和DELETE),因此我需要拦截所有查询,然后使用一些正则表达式过滤它们并根据需要记录它们。 我会在Rails代码中的哪儿放这样的东西? 问题答案: 这里是c0r0ner链接的简化版本,以更好地显示它:

  • 下面的代码从我的应用程序开始,每隔30秒向graphite注册五个度量计数,一分钟、五分钟、五分钟、平均速率。 我想在Grafana仪表板中显示每分钟收到的请求数。(即,如果在第一分钟接收到60,则在第二分钟接收到120),因为上述仪表度量中的计数一直在增加,并且所有*速率值都是每秒事件数。我不知道如何将度量记录到Grafana仪表板中,该仪表板显示每分钟接收的请求数。非常感谢您的任何建议? 假设

  • 我知道,当连接到SQL server时,可以通过在属性文件行中添加以下内容(如本文所述)来查看发送到DB的实际查询: 在使用CouchBase的时候应该有什么方法呢?

  • 问题内容: 我正在尝试编写一个简单的数据库应用程序,该应用程序可以访问多个数据服务器,一些MySQL,MSSQL和SqlLite3。我正在使用“数据库/ SQL”包来访问它们。 我需要将SQL查询记录到各个服务器上,以进行调试和审核。我该如何实现? 问题答案: 假设您不想使用服务器日志记录功能,显而易见的解决方案是在进行所有查询时简单地记录它们。 这是您问题的基本解决方案。您可以通过多种方式对其进

  • 问题内容: 我正在将数据有问题地插入表中。当我从另一个表执行此操作时,它很快,但如果有很多记录,则只会非常缓慢地放慢速度。即使那样,也只需要几秒钟。 当我从查询插入到表时,它需要花费几分钟的时间-大约每插入1000条记录需要一分钟。 源查询本身仅作为选择查询运行时,可能需要1-2秒。查询是否针对插入的每个记录运行?我希望它会在整个数据集中运行一次。还是有其他原因导致该函数与从另一个表插入“平面”数

  • 本文向大家介绍SQL Server数据库按百分比查询出表中的记录数,包括了SQL Server数据库按百分比查询出表中的记录数的使用技巧和注意事项,需要的朋友参考一下 SQL Server数据库查询时,能否按百分比查询出记录的条数呢?答案是肯定的。本文我们就介绍这一实现方法。 实现该功能的代码如下: 或 创建存储过程的语法类似带指针的C#,创建时参数表用小括号括起,输出参数带传递方向的参数标识 O