标签: sqlite

将多个 SQL Server 表复制到只读 SQLite 数据库的最佳方法是什么?

我有一个包含大约 50 个表的数据库,共使用了大约 1 GB 的空间。SQLite 数据库将是只读的。此复制将每月进行一次。

编辑:

我看到一种可能的解决方案是通过 SQLite 3 ODBC 驱动程序使用链接服务器,这会产生相当简单的 t-sql 脚本。我不知道它的性能。

我猜其他解决方案需要更多的工作,但获得更好的性能。

sqlite sql-server

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

基于多事件的文件设计

我不是数据库专家,但我需要设计一个数据库来为我们的应用程序存储事件。我们的客户端应用程序连接到远程硬件并同步计数数据。计数数据是拆分为 /date/guid.cvs 的 csv 文件。同步部分已完成,但现在我需要获取同步文件并将它们转储到报告系统的数据库中。这一切都存储在客户端的计算机上,因此我需要一个文件数据库以方便使用。我一直在使用sqlite。

现在我的问题。csv 文件中的每一行都是一个定义了数据的事件:

时间戳、车辆长度(单个)、控制器状态(int)、转弯类型(int)、队列长度(int)、其他定义事件的整数

我还计划包含来自 csv 文件名的 guid。我看到的问题是这个单个表将有很多很多行。仅在少量数据(几天)上,我就已经有超过 10 万行。这将需要处理可能持续数年的事件。

有没有减少行数的好方法,或者它不会成为问题?我是否缺少某种设计表格的方法,以免它们变大?我看到了一些关于分区的内容,但我不确定 sqlite 是否支持。是否有另一个文件数据库可以做到?我使用 c# 4 作为客户端的前端。

sqlite database-design c#

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

在客户端应用程序上使用 CoreData

这可能更像是一个 SO 问题,但是......

如果我正在为 OS X 编写一个将与在线 MySQL 数据库同步的客户端应用程序,那么我的 CD 是使用 SQLite 还是 XML 有什么区别?

mysql sqlite xml mac-os-x

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

使用台式计算机在文件服务器上管理 SQLite 数据库?

有时,在大型公司中启动并运行合适的数据库服务器可能需要数月时间。他们有各种各样的政策,这意味着这个过程需要几个月的时间。与此同时,另一种方法是将 SQLite 数据库直接放在文件服务器上。这对于有限数量的用户非常有效(我已经成功地为 100 个用户提供服务,使用一个这样的数据库),并且只推荐用于非关键数据。现在我一直在考虑获取数据库的方法,该数据库放置在文件服务器上以便能够处理十倍的用户。我的基本想法是利用公司周围许多闲置的台式电脑。同样,数据不是关键的,数据库访问可能很慢,99.0% 的正常运行时间就足够了。

您是否看到任何方法可以利用这些最理想的台式计算机来帮助减少文件服务器上的负载?您对最适合的 DBMS 有任何想法吗,SQLite 只是我的第一个想法。最好是开源的,这样我就可以聘请某人为此目的对其进行调整。或者,我有兴趣为此目的从头开始构建 DBMS。

我知道任何有经验的 DBA 都会对这个问题不屑一顾,但由于这些公司的政策,它们确实有价值。

sqlite

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

在 SQLITE 中将多行中的列合并为一行

我有一个带有架构的 sqlite 数据库

Articles
 Id
 Name

Tags
 Id
 Name

ArticlesTags
 Id
 ArticleId
 TagId
Run Code Online (Sandbox Code Playgroud)

我正在尝试查询 Articles.Name 和标签列表。基本上我想要的是:

Name1, (tag1,tag2,tag3)
Name2, (tag3,tag2)
Run Code Online (Sandbox Code Playgroud)

这可能吗?我缺乏语言来解释我真正想做的事情,它叫什么?

我发现将多行中的列合并为单行,但它似乎仅限于 SQLServer 和内置 xml 功能的使用。

sqlite join query

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

多对多关系

我正在研究图书数据库。除其他外,我有以下两个表(针对问题进行了一些简化):

tblBook: ID, Title
tblPerson: ID, Name
Run Code Online (Sandbox Code Playgroud)

请注意,该tblPerson表包含作者、翻译者和编辑(不仅是作者)。

很明显,这两个表是多对多的关系,所以我也有如下联结表:

tblBookAuthorJunction
tblBookTranslatorJunction
tblBookEditorJunction
Run Code Online (Sandbox Code Playgroud)

但是当涉及到加入表以选择所有角色时,我遇到了一个问题:如何创建一个查询以获得一个看起来像这样的表:

BookTitle AuthorName TranslatorName EditorName
Run Code Online (Sandbox Code Playgroud)

这是可能吗?我的查询应该是什么样的?

编辑:您可以为 RDBMS 假设 SQLite。


更新

到目前为止,有两个包含查询的答案。我想将这些答案与可能会发现此信息有价值的其他人进行比较...请注意,连接表的名称与问题中的名称略有不同。而且,是的,我知道,测试数据很无聊。

答案 1

我自己的回答中的查询如下:

SELECT B.BookTitle, P1.PersonName, P2.PersonName, P3.PersonName
FROM tblBook B
LEFT JOIN tblBookAuthor A ON B.BookID = A.BookID
LEFT JOIN tblPerson P1 ON A.AuthorID = P1.PersonID
LEFT JOIN tblBookTranslator T ON B.BookID = T.BookID
LEFT JOIN tblPerson P2 ON T.TranslatorID = P2.PersonID
LEFT JOIN tblBookEditor E ON B.BookID = E.BookID
LEFT JOIN …
Run Code Online (Sandbox Code Playgroud)

sqlite join aggregate

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

SQLite3 - 删除多列的重复项

我正在寻找最有效的方法来从表中删除重复项,其中 id 是唯一的,但当您检查其他列时有相同的行。

例子:

id   name   age   x
1   peter   25    II
2   peter   25    II
Run Code Online (Sandbox Code Playgroud)

该表有数万行。

sqlite duplication row

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

如果查询数据库太复杂,是不是数据库设计不好?

我是数据库的新手,下面是我的一个查询及其解释,我觉得它太复杂了。它有效,但我担心设计不好。

为购买了数据库中最赚钱的作者所写的任何内容的客户提供客户信息列表。

SELECT E.id,NAMES.fname, NAMES.lname, E.address, E.city, E.state,E.country,    E.email, E.phone, E.postalcode
FROM ENTITY AS E, (SELECT DISTINCT T.customer_id
               FROM (SELECT  DISTINCT O.order_id
                     FROM ORDERITEM AS O
                     WHERE O.bid IN (SELECT DISTINCT A.b_id
                                     FROM AUTHOR AS A
                                     WHERE A.name_id IN (SELECT DISTINCT NA.name_id
                                                         FROM (SELECT A.name_id, A.b_id
                                                               FROM (AUTHOR AS A JOIN NAMES AS N ON (A.name_id = N.id))
                                                               GROUP BY A.name_id) AS NA,(SELECT B.b_id AS bid, max(C.total_quantity * B.price), B.title
                                                                                          FROM BOOK AS B, (SELECT bid, SUM(quantity) AS total_quantity
                                                                                                           FROM …
Run Code Online (Sandbox Code Playgroud)

sqlite database-design design-pattern

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

sqlite计算百分比

我想从表中选择频率计数小于总金额 5% 的项目。

例如,如果我有一张姓名表,我想选择出现次数少于总数 5% 的姓名。

sqlite

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

一个或多个 SQLite 表中多个源的时间序列数据?文件大小影响?

这是情况:

  • 来自一组非常有限的来源的大量时间序列数据将保存在 SQLite 数据库文件中。
  • 时间序列源由 10 个字符长的字符串标识。来源的数量非常少,而且根本不是动态的。
  • 无需立即对时间序列源之间进行任何相关分析。

我想,按照惯例,人们会将所有时间序列数据转储到单个表中,并带有标识每个数据点来源的文本字段。

但是,我想知道为每个时间序列数据源创建一个单独的表是否会更有效?通过消除重复的文本字段,SQLite 数据库的文件大小最终会小很多吗?查询会运行得更快吗?

或者我应该完全避免为每个来源创建表格以及出于什么原因?

数据库不会很大,这可能保证在 MySQL 上使用 SQLite。除了整数时间戳,还有四个整数字段。每 3 分钟进行一次测量,但它可以轻松运行一年或更长时间。部分设计最终可能会出现在闪存容量非常有限(64Mbit)的嵌入式设备中,因此我最初对 SQLite 感兴趣。但是,我愿意接受其他建议。

schema sqlite time-series-database

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