我有一个sql server
数据库,可以使用WPF
应用程序。用户每秒插入数千个数据。
我的客户端希望将数据库更新为只读数据库。但我对此有些担忧。
如果我以只读方式更新数据库,是阻止从应用程序插入还是更新数据?
只读表示只读。当数据库处于只读模式时,您只能从中读取数据,而不能进行任何更改。
要回答您的问题,要在只读数据库中插入或更新数据,您需要先将其置于读写模式:
ALTER DATABASE [TESTDB] SET READ_WRITE WITH NO_WAIT
GO
虽然希望数据库处于只读模式并不罕见,但如果您定期进行更改,则完全违背了这一点。dba.stackexchange 上的这个问题有一些答案,如果你只是想在定义的维护时段内进行小的更改。
将数据库设置为只读意味着用户可以从数据库中读取数据,但不能修改数据。
如果您需要read only
数据库但同时需要修改数据,您可以做的是将表划分为不同的文件组。
这是一个非常复杂的解决方案,但拥有不同的文件组可以允许拥有read-only
表和可以修改的表。此外,对于只读文件组,可以应用压缩,从而减小整个组的大小。
有关设置和拥有read-only
文件组的要求的详细信息,请参阅此处和此处。
不可能,只读意味着只读:没有输入,没有更新。
但是,您可以复制表的内容并在此侧临时表中更新,并尝试定期无缝集成到主表中(当主表上的 io-load 较低或服务停机时间时......