【问题标题】:Have you tried to use SQLite as the query engine for your *raw* database?您是否尝试过使用 SQLite 作为您的 *raw* 数据库的查询引擎?
【发布时间】:2009-06-03 19:07:01
【问题描述】:

我已经为我们的 数据库(Oracle Berkeley DB 引擎)制作了一个自定义报告生成器。
现在是我增加灵活性的时候了,但我处于两难境地。进行部分或基本的重新设计?

  1. 假设我有足够的时间。
  2. 我只能读取数据库,没有权限修改。

Query Anything with SQLite 文章的启发,我想让SQLite 引擎完成 工作(分组、过滤等)。

你试过了吗?有什么例子吗?性能问题呢?

【问题讨论】:

  • 所以您想创建一个虚拟 sqlite 表“填充”来自 Oracle Berkeley DB 的数据?雄心勃勃!
  • 如果我没记错的话,我不必填写表格,只需使用 intermidiate 值。实际上这就是为什么我在尝试之前先问一下。我不知道如何解决它:)
  • 虚拟表将像 Oracle Berkeley DB 上的视图一样工作?这是你想要达到的目标吗?
  • 不像视图。不知何故,SQLite 在查询虚拟表时将使用我的回调而不是内置的 table walk 例程。

标签: c++ database sqlite reporting


【解决方案1】:

它适用于我正在使用的东西 :-) 但是我不将它与另一个数据库一起使用,只是独立使用。在他们的网站上有一个 SQlite 的Well-known Users 列表。

您需要告诉我们更多关于您的用例的信息,以便对性能做出任何推测,但我宁愿做一个 POC 并测量性能Long-held, incorrect programming assumptions

sqlite 网站上有一篇很好的 quickstart 文章。

这是C/C++ API Reference

我假设您应该能够通过最初查询其他数据库并将数据插入临时 SQLite 表来创建临时 SQLite 表。然后,您可以对该临时表使用不同的查询来进行分组、过滤等。

【讨论】:

  • 我熟悉 SQLite3 :) 在数据库中存储原始数据/表。我想通过 sqlite 和查询获取数据。
  • @tydoc 确定你的“你试过了吗?”让我觉得你还不知道 SQLite ;-)
  • “我认为你应该能够创建...”。我已经想到了,这正是我想要避免的:) 这是一个很好的解决方案,但我不想创建额外的表,因为数据库可以有数千条记录,即 OrderLines。
  • @tydok 也许你需要澄清你到底想做什么。如果您向您的数据库发出查询,例如返回 10000 行,然后您可以只查询一次其他数据库并将结果集存储在临时 SQLite 表中,然后使用进一步的(SQLite)查询对这些结果进行排序/过滤。根据您的问题,我认为这正是您计划做的。
猜你喜欢
  • 2010-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-21
  • 2013-02-28
相关资源
最近更新 更多