日期列上的查询执行缓慢 Select
Slow Select query execution on Date column
我从 SQL CE 数据库迁移到 SQLite 数据库 (3.18.0) 但是当 [=26] 中有日期时间列时我的查询速度很慢=].
我的 SQLite 存储日期时间的列是 INTEGER 类型。日期以 UNIX 纪元(秒)存储。
在具有 15 列和 1000 条记录的 table 上,我的查询大约需要 3 秒。
没有日期(只有名字)的相同查询是即时的。
SELECT Name,
CreatedDate
FROM [Table]
我必须在文本中存储日期吗?有什么特别的吗?
编辑:
来自 Entity framework,生成的查询是:
SELECT
[Extent1].[VisualizationIndex] AS [VisualizationIndex],
[Extent1].[Identifier] AS [Identifier],
[Extent1].[IdentifierParent] AS [IdentifierParent],
[Extent1].[IdentifierEnvironment] AS [IdentifierEnvironment],
[Extent1].[IdentifierReference] AS [IdentifierReference],
[Extent1].[Name] AS [Name],
[Extent1].[Description] AS [Description],
[Extent1].[Type] AS [Type],
[Extent1].[Visibility] AS [Visibility],
[Extent1].[Layer] AS [Layer],
[Extent1].[Version] AS [Version],
[Extent1].[Created] AS [Created],
[Extent1].[LastModified] AS [LastModified]
FROM [CV_UsersComponents] AS [Extent1]
ORDER BY [Extent1].[Name] ASC
-- Executing at 10/31/2017 4:52:47 PM +01:00
-- Completed in 3433 ms with result: SQLiteDataReader
终于找到性能问题的根源了。
在 SQLite 中,列顺序非常重要!
我将 "created" 和 "lastModified" 列移到存储一些 XML 数据的 TEXT 类型列之前。
那么我的查询现在是即时的。
更多信息在这里:
http://sqlite.1065341.n5.nabble.com/Does-column-order-matter-for-performance-td81880.html
我从 SQL CE 数据库迁移到 SQLite 数据库 (3.18.0) 但是当 [=26] 中有日期时间列时我的查询速度很慢=].
我的 SQLite 存储日期时间的列是 INTEGER 类型。日期以 UNIX 纪元(秒)存储。
在具有 15 列和 1000 条记录的 table 上,我的查询大约需要 3 秒。 没有日期(只有名字)的相同查询是即时的。
SELECT Name,
CreatedDate
FROM [Table]
我必须在文本中存储日期吗?有什么特别的吗?
编辑:
来自 Entity framework,生成的查询是:
SELECT
[Extent1].[VisualizationIndex] AS [VisualizationIndex],
[Extent1].[Identifier] AS [Identifier],
[Extent1].[IdentifierParent] AS [IdentifierParent],
[Extent1].[IdentifierEnvironment] AS [IdentifierEnvironment],
[Extent1].[IdentifierReference] AS [IdentifierReference],
[Extent1].[Name] AS [Name],
[Extent1].[Description] AS [Description],
[Extent1].[Type] AS [Type],
[Extent1].[Visibility] AS [Visibility],
[Extent1].[Layer] AS [Layer],
[Extent1].[Version] AS [Version],
[Extent1].[Created] AS [Created],
[Extent1].[LastModified] AS [LastModified]
FROM [CV_UsersComponents] AS [Extent1]
ORDER BY [Extent1].[Name] ASC
-- Executing at 10/31/2017 4:52:47 PM +01:00
-- Completed in 3433 ms with result: SQLiteDataReader
终于找到性能问题的根源了。 在 SQLite 中,列顺序非常重要!
我将 "created" 和 "lastModified" 列移到存储一些 XML 数据的 TEXT 类型列之前。
那么我的查询现在是即时的。 更多信息在这里: http://sqlite.1065341.n5.nabble.com/Does-column-order-matter-for-performance-td81880.html