我必须为每分钟从 500 万个传感器收集数据的应用程序创建一个 DBF,因此我每分钟将有 500 万条记录。
我正在考虑使用 SQL 服务器,因为我每天将有 72 亿条记录。但是当我在我的 PC(双核 E6300、@Gb RAM、HDD 500Gb SATA)上测试写入速度时,我发现 Visual Foxpro 9 注册 100 万条记录的速度是 SQL Server 2008 的 100 倍。
SQL Server,2.55 分钟:
declare @i int=1
while @i<1000001
begin
insert into dbo.sensor (sensorid, datetime, value) values (1,getdate(),@i)
set @i=@i+1
end
Run Code Online (Sandbox Code Playgroud)
VFP9,2 秒:
? DATETIME ()
FOR i=1 TO 1 000 000 STEP 1
INSERT INTO Table1 (sensorid, dtime, value, status) VALUES (i, date(), i, "S")
ENDFOR
? DATETIME()
Run Code Online (Sandbox Code Playgroud)
我提到没有索引,并且该表将是只读的。怎么了?
我正在寻找一个好的客户端工具来替换“Oracle SQL Developer”(我目前使用的工具),它支持:
你知道一个吗,最好是免费的?
有没有办法以编程方式检索添加到表列和索引的每个 STATISTICS 的定义。对于用户添加的和系统创建的索引。Sql Server 添加了许多像“__WA_Sys_*”这样的统计信息。
我需要重新编写其中一些并添加更多内容,但是有太多内容无法使用 Management Studio 手动完成。
问题是关于未包含在“开始提交”块中的查询,而是关于 PostgreSQL、MySQL(至少是 innodb 引擎)中原子的普通插入和更新。那么这在内部是如何实现的呢?
有没有办法将 SQL Server 文件(.mdf 和 .ldf)从备份文件 (.bak) 提取到物理位置,而无需restore database?
我需要一个还原查询或脚本来仅从 bak 文件中还原文件,而不需要附加到服务器。请不要谈论恢复后分离查询。
sql-server ×2
backup ×1
oracle ×1
oracle-10g ×1
oracle-11g ×1
rdbms ×1
restore ×1
statistics ×1
transaction ×1