首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应该在事务中运行分析吗?

应该在事务中运行分析吗?
EN

Stack Overflow用户
提问于 2014-04-18 22:29:27
回答 1查看 229关注 0票数 2

在sqlite (特别是第3版)中,是否应该在事务中运行分析?

如果是这样的话,而且我正处于一个进行了大量更改的长事务的末尾,那么在同一个事务中运行分析可以吗?还是应该首先提交该事务并开始另一个事务来进行分析?

文献资料并没有用这种或那种方式谈论任何事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-19 09:22:40

ANALYZE从索引列中读取数据,并将统计信息写入某些内部表。这有点类似于以下查询:

代码语言:javascript
复制
INSERT OR REPLACE INTO sqlite_statXXX
SELECT 'MyTable', 'MyColumn', COUNT(*), AVG(MyColumn) FROM MyTable

对每个索引列执行一次。

与向数据库写入少量数据的任何其他SQL语句一样,事务开销将比写入数据本身的实际工作量大得多。

在您的示例中,如果没有更改的统计数据,就没有必要使用更改过的数据,所以您也可以在同一个事务中进行分析。

如果数据库太大,以致于分析运行了很长一段时间,那么将其执行推迟到与更重要的事务不发生冲突时再执行可能是有意义的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23163380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档