来自广泛的SQL Server T-SQL背景,我无法找到任何描述SQL CE和完整的SQL Server之间的T-SQL支持差异的特定文档.你遇到了哪些不同之处?在某处有并排的T-SQL比较吗?我在这里看过MSDN文档,但我似乎无法找到有关哪些T-SQL语句在两者之间不可移植的任何细节.我发现的一个不同之处是缺少ISNUMERIC()函数.还有其他人?
注意:我对DML功能的差异比DDL和管理功能更感兴趣,我确信这些功能很多并且完全无趣.
在数据库中存储大量数据的最佳方法是什么?我需要存储带有时间戳的各种环境传感器的值.我已经用SQLCE完成了一些基准测试,它适用于几十万行,但如果它达到数百万,则选择将变得非常慢.我的实际表格:
Datapoint:[DatastreamID:int, Timestamp:datetime, Value:float]
Datastream: [ID:int{unique index}, Uint:nvarchar, Tag:nvarchar]
Run Code Online (Sandbox Code Playgroud)
如果我查询特定Datastream的数据点和日期范围,则需要很长时间.特别是如果我在嵌入式WindowsCE设备上运行它.这是主要问题.在我的开发机器上,查询占用了〜1sek,但在CE设备上耗时约为5分钟
每5分钟我记录20个传感器,每小时12个*24小时*365天= 105,120*20个传感器=每年2,102,400(行)
但它可能是更多的传感器!
我考虑过某种web服务后端,但设备可能并不总是连接到互联网/服务器.
数据必须能够在设备上显示.
我怎样才能加快速度呢?选择其他表格布局,使用其他数据库(sqlite)?目前我使用.netcf20和SQLCE3.5
一些建议?
以前我在我的项目中使用了Entity Framework 4.0 CTP5(代码优先)和SQL Compact.我使用NuGet安装了以下软件包:
现在发布EF 4.1 RC时,我想将所有库更新到最新版本.NuGet feed不再包含SQLCE.4.0.8435.1的任何更新,但它有一个新包' SqlServerCompact - 4.0.8482.1 '(新包,而不是现有包的新版本).假设它刚刚重命名,我应该安装它.这样对吗?假设,是的.
NuGet也不包含"EFCodeFirst"和"EFCodeFirst.SqlServerCompact"包的任何更新.但它有一个新的' EntityFramework 4.1.10311.0 '包.
那么我应该安装什么?" EntityFramework 4.1.10311.0 "和" SqlServerCompact - 4.0.8482.1 "是否足以首先在SQL Compact中使用EF代码?
sql-server-ce entity-framework-4 nuget sql-server-ce-4 entity-framework-4.1
到目前为止,我一直在我的桌面应用程序上使用SQL Server Express,即使通常服务器仅由单个用户在同一台机器上使用该单个应用程序.这对我来说似乎总是有些愚蠢,因为全面的服务器相当沉重.
然后我发现有一种叫做SQL Server Compact的东西.事实上,我的申请已经相当庞大.所以我的问题是,如果我想改用SQL Server Compact,我们谈论的代码有哪些变化(使用C#)?
主要是我想知道我是否可以像访问Express一样访问Compact -version,它使用ADO.NET并将其指向localhost\sqlexpress.那么是否可以使用Compact创建另一个实例并将我的应用程序指向它,或者是以完全不同的方式使用它?
SQL CE 3.5支持哪些数据类型?具体来说你可以使用Geography/Geometry类型吗?
我正在使用一个简单的WinForms应用程序,该应用程序使用.sdf数据库来存储数据.我看到了关于如何处理多线程访问的这篇有趣的帖子,这似乎很有用.问题是,我找不到System.Data.SqlServerCe程序集.我安装了Sql Server Compact 3.5 SDK,但是当我去添加引用时,该引用仍未显示在我的.NET程序集列表中.我错过了什么?
我在Windows 7上使用Visual Studio 2010 Ultimate.
在SQL Server Compact中,我试图删除一个影响数千行列的goof的尾随逗号NVARCHAR.
UPDATE myTable
SET col = LEFT(col, LEN(col)-1)
WHERE col LIKE '%,';
Run Code Online (Sandbox Code Playgroud)
抛出错误:
解析查询时出错.[令牌错误= LEFT]
SQL Server CE可以不解析该查询吗?或者,有人可以提供另一种方法吗?
注意:我在CompactView中尝试过这个,我不确定这是不是问题.
我在VS2012中使用 EntityFramework Reverse POCO Generator
VS2012 ...
这是我的连接字符串:
<connectionStrings>
<add name="Entities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlServerCe.4.0;provider connection string="data source=C:\SomeDatabase.sdf"" providerName="System.Data.EntityClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
更新了.tt文件以指向我的connectionString,当我保存时,我收到此错误(警告)::
警告1运行转换:无法加载提供程序"System.Data.EntityClient" - 无法找到请求的.Net Framework数据提供程序.它可能没有安装.
所以它没有生成任何代码.有任何想法吗?
这是Database.tt文件的片段:
<#@ include file="EF.Reverse.POCO.Core.ttinclude" #>
<#
// v2.5.0
// Please make changes to the settings below.
// All you have to do is save this file, and the output file(s) is/are generated. Compiling does not regenerate the file(s).
// Misc settings **********************************************************************************************************************
// Namespace = ""; // Override the …Run Code Online (Sandbox Code Playgroud) 我的问题的简要背景是,我们生产中的一些紧凑数据库正在损坏,我们需要调查原因。我在这里找到了一些很棒的指示,其中之一是“关闭自动收缩”。
所以我的问题是如何检查现有紧凑数据库上的自动收缩级别?
通过 Sql Server,我可以使用 sys.databases,如下所示:
SELECT
name,
is_auto_shrink_on
FROM sys.databases
Run Code Online (Sandbox Code Playgroud)
但可惜 sys.database 并不存在于 SQL Compact 中(这是可以理解的)。
我在MSDN上读到,您可以在连接字符串中设置Auto_Shrink 值,他们提到默认 Auto_Shrink 值为 60。这很好,但就我而言,我需要找出现有数据库上的 Auto_Shrink 是什么,不改变它。
Auto_Shrink 对于紧凑数据库的工作方式是否可能有所不同,而我误解了它?
当在 Asp.net MVC 中创建项目时,您可以在不同类型的数据库之间进行选择,推荐使用哪种数据库以及它们的区别和用途。
sql-server-ce ×10
c# ×4
sql-server ×3
database ×2
sql ×2
t-sql ×2
corruption ×1
geospatial ×1
nuget ×1
poco ×1
rdbms ×1