Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LocalDB(mdf)压缩_C#_Sql Server_Localdb - Fatal编程技术网

C# LocalDB(mdf)压缩

C# LocalDB(mdf)压缩,c#,sql-server,localdb,C#,Sql Server,Localdb,我正在考虑在未来的项目中使用LocalDB,而不是OleDB MDB 我是否需要不时压缩数据库?如果是的话,怎么办 我发现在SQL数据库MDF的情况下有一个收缩选项,对吗?可以定义自动收缩并以某种方式修复。也许我不需要进行压缩,据我所知,压缩就是创建新的数据库并将实际内容复制到其中,这样所有过时的内容都会被删除,但这足以实现某种程度上的收缩,这是一种选择,以便服务器定期进行一种垃圾收集,通过将垃圾移动到数据库文件的末尾并截断该文件 同样有趣的是,在文件系统碎片方面,shrink的工作情况如何?我

我正在考虑在未来的项目中使用LocalDB,而不是OleDB MDB

我是否需要不时压缩数据库?如果是的话,怎么办

我发现在SQL数据库MDF的情况下有一个收缩选项,对吗?可以定义自动收缩并以某种方式修复。也许我不需要进行压缩,据我所知,压缩就是创建新的数据库并将实际内容复制到其中,这样所有过时的内容都会被删除,但这足以实现某种程度上的收缩,这是一种选择,以便服务器定期进行一种垃圾收集,通过将垃圾移动到数据库文件的末尾并截断该文件

同样有趣的是,在文件系统碎片方面,shrink的工作情况如何?我猜不是很好

总而言之,我更喜欢压缩,如何执行压缩的思想代码,以及如何确定何时需要执行压缩的标准


我明白了,有一个备份命令,可能压缩看起来像:1备份2重新创建数据库3从备份还原?

LocalDB是SQL Server Express,也就是SQL Server。一般SQL Server指南通常也适用于LocalDB,除非您有非常特殊的情况。请注意,包括LocalDB的SQL Server Express对MDF文件大小有一个附加限制,在SQL Server Express 2012中为10GB

需要记住的一点是,格式的设计是为了快速,而不是紧凑。例如,一个空数据库将创建一个几MB大的MDF文件

自动增长和自动收缩似乎是管理中密度纤维板大小的方法,如果您希望尽可能降低它。和中讨论了与性能相关的权衡


根据文件系统碎片-创建具有足够大的文件大小的数据库应该会有所帮助,因为操作系统应该能够在一次请求时更容易地找到大的连续磁盘空间块。当数据库文件增长和收缩时,它更有可能在文件系统级别被分割。我还发现,正在讨论使用工具手动整理给定文件的碎片。看起来很有希望,但我还没有测试它。

LocalDB是SQL Server Express,也就是SQL Server。一般SQL Server指南通常也适用于LocalDB,除非您有非常特殊的情况。请注意,包括LocalDB的SQL Server Express对MDF文件大小有一个附加限制,在SQL Server Express 2012中为10GB

需要记住的一点是,格式的设计是为了快速,而不是紧凑。例如,一个空数据库将创建一个几MB大的MDF文件

自动增长和自动收缩似乎是管理中密度纤维板大小的方法,如果您希望尽可能降低它。和中讨论了与性能相关的权衡


根据文件系统碎片-创建具有足够大的文件大小的数据库应该会有所帮助,因为操作系统应该能够在一次请求时更容易地找到大的连续磁盘空间块。当数据库文件增长和收缩时,它更有可能在文件系统级别被分割。我还发现,正在讨论使用工具手动整理给定文件的碎片。看起来很有希望,但我还没有测试过。

您能否提供更多的背景信息,说明您认为可能需要压缩的原因?我能想到的唯一原因是,如果您担心达到数据库大小限制,我相信现在LocalDB的限制是10GB。MDF限制是16TB,MDB-2GB不够tbh。15年前,我在学习什么样的数据库不会实际删除记录,而是将它们标记为这样。可能还有其他操作,这些操作被认为是索引、更新等而没有执行。因此,如果您做了大量更改,您的数据库将增长,变得更慢,甚至可能出现问题。对于MDB,压缩是必须的,我知道如何使用JRO来实现。但我没有发现任何与MDF或LocalDB或SQL express相关的内容。我试图回答以下问题,并添加了SQL server标记,以吸引真正的专家来回答这个问题。您能否提供更多上下文,说明您认为可能需要压缩的原因?我能想到的唯一原因是,如果您担心达到数据库大小限制,我相信现在LocalDB的限制是10GB。MDF限制是16TB,MDB-2GB不够tbh。15年前,我在学习什么样的数据库不会实际删除记录,而是将它们标记为这样。可能还有其他操作,这些操作被认为是索引、更新等而没有执行。因此,如果您做了大量更改,您的数据库将增长,变得更慢,甚至可能出现问题。对于MDB,压缩是必须的,我知道如何使用JRO来实现。但是我没有发现与MDF或LocalDB或SQL express相关的任何内容。我尝试回答下面的问题,并添加了SQL server标记以吸引真正的专家来回答这个问题
请解释一下。现在更清楚了。您能确认一下,我不需要做什么就可以使用localdb启用自动收缩功能,使用DataContext dbml以编程方式创建数据库?我可以忍受那25%的额外费用,我担心像2000%=DI这样的东西无法方便地安装LocalDB来测试它,但是一个简单的测试就足够了。只需创建一个数据库并查看autoshrink选项的值。这应该有效:`selectdatabasepropertyEx','IsAutoShrink'。详情:。显然,默认值将来可能会更改,因此您可以自己设置它,以确保在某些设置步骤中,根据您的应用程序进行设置。感谢您的解释。现在更清楚了。您能确认一下,我不需要做什么就可以使用localdb启用自动收缩功能,使用DataContext dbml以编程方式创建数据库?我可以忍受那25%的额外费用,我担心像2000%=DI这样的东西无法方便地安装LocalDB来测试它,但是一个简单的测试就足够了。只需创建一个数据库并查看autoshrink选项的值。这应该有效:`selectdatabasepropertyEx','IsAutoShrink'。详情:。显然,默认值将来可能会更改,因此您可以自己设置它,以确保在某些设置步骤中,根据您的应用程序而定。