sql - 在 SQLite 3 中启用查询日志记录

标签 sql database sqlite logging built-in

在SQLite中是否有任何内置函数可以启用查询日志。

我熟悉 Trace API,但我想知道是否有任何预定义函数。

最佳答案

没有像 MySQL 那样简单的方法来做到这一点,但有一些选择:

一:

一些包装器库内置了类似这样的东西。但是要找到包装器库,您可能首先需要确定目标语言。 Perl 数据库接口(interface)? Python? C++?

两个:

不会(以任何方式)推荐以下“生产级”解决方案,但如果您主要是试验和/或调试,那么您可以尝试检查回滚日志在每笔交易结束之前。 See here about the rollback journal: http://www.sqlite.org/tempfiles.html如何检测“每个事务的结束”取决于您的代码和/或调试器中的断点。

我必须再次强调:我刚才说的完全是胡扯,我说了也觉得脏。

三:

您可以在(非常积极和亲切的)sqlite mailing list 上提问,但他们可能只是重新强调 sqlite3_trace。

...其他随机的东西:

在某种程度上(几乎?)相关的说明中,当您启动“./sqlite3”命令提示符 session 时,您可以键入:

.explain

它为在提示符下执行的每个查询启用有趣且有指导意义的详细输出。

我刚找到的更多信息:

One of the flags that can be passed to 'sqlite3_config()' is SQLITE_CONFIG_LOG.这是另一种方式(除了跟踪 API 之外)设置回调并定期从 sqlite 库接收状态信息。我认为它主要用于错误日志消息。

关于sql - 在 SQLite 3 中启用查询日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10910157/

相关文章:

c# - SQL 服务器 2008 R2 : How do I "pause" a clustered index while the server is being written to?

c# - 我应该何时打开和关闭与 SQL Server 的连接

mysql - 使用列中的值作为 LIKE 语句中表达式的值

SQL Server 使用 OPENJSON 解析嵌套 json

sqlite - 如何重命名 SQLite 数据库表中的列?

android - 使用sqlite数据库时close()游标和DB

android - 在 Android 中更改包名称后如何访问我的 Sqlite 数据库?

javascript - 将 javascript 计算值传递到数据库是不好的做法吗?

mysql判断一个字段的存储大小

php - 如何在 Laravel 中使用两个 foreignId