Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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
Sql server 只读数据库查询?_Sql Server - Fatal编程技术网

Sql server 只读数据库查询?

Sql server 只读数据库查询?,sql-server,Sql Server,我读了很多关于只读数据库的书 因此,我想知道如果有一个只读数据库,大量用于读取和查询数据,以及一个单独的写数据库,当写数据库不使用锁定时,用于所有CRUD工作,是否会有任何好处。可能会有一些好处,尤其是当它从R/W数据库中卸载您的临时查询和报告需求时。最大的挑战是保持它们的同步,但如果隔夜处理足够好(即,日间更改不需要包含在只读数据库中),那么通常使用两个数据库效果非常好,特别是如果数据库位于不同的物理机上 编辑:作为一个真实的例子,几年前,在我的一个客户机上,他们很难从生产数据库(SQL Se

我读了很多关于只读数据库的书


因此,我想知道如果有一个只读数据库,大量用于读取和查询数据,以及一个单独的写数据库,当写数据库不使用锁定时,用于所有CRUD工作,是否会有任何好处。

可能会有一些好处,尤其是当它从R/W数据库中卸载您的临时查询和报告需求时。最大的挑战是保持它们的同步,但如果隔夜处理足够好(即,日间更改不需要包含在只读数据库中),那么通常使用两个数据库效果非常好,特别是如果数据库位于不同的物理机上

编辑:作为一个真实的例子,几年前,在我的一个客户机上,他们很难从生产数据库(SQL Server)中获取可用的临时报告,该数据库运行在功能强大的机器上,仅硬件成本就高达50000美元

我说服他们建立一个只读数据库,使用非标准化的r/o数据,并在桌面计算机上运行SQL server(硬件成本约2500美元)这台2500美元的现成台式PC的性能是大型compaq quad processing server的10倍,它拥有大量ram和磁盘,试图满足该部门的OLTP、批处理和报告需求


不用说,用户非常高兴,尽管最初IT人员对此表示反对,但最终在“生产”机器上释放了宝贵的周期,并且该模型在其他地方得到了模拟

可能会有一些好处,特别是如果它从R/W数据库中卸载您的临时查询和报告需求。最大的挑战是保持它们的同步,但如果隔夜处理足够好(即,日间更改不需要包含在只读数据库中),那么通常使用两个数据库效果非常好,特别是如果数据库位于不同的物理机上

编辑:作为一个真实的例子,几年前,在我的一个客户机上,他们很难从生产数据库(SQL Server)中获取可用的临时报告,该数据库运行在功能强大的机器上,仅硬件成本就高达50000美元

我说服他们建立一个只读数据库,使用非标准化的r/o数据,并在桌面计算机上运行SQL server(硬件成本约2500美元)这台2500美元的现成台式PC的性能是大型compaq quad processing server的10倍,它拥有大量ram和磁盘,试图满足该部门的OLTP、批处理和报告需求


不用说,用户非常高兴,尽管最初IT人员对此表示反对,但最终在“生产”机器上释放了宝贵的周期,并且该模型在其他地方得到了模拟

只读数据库的好处是显而易见的:没有表锁定,在您试图读取数据时没有人更改数据

但是,您确实存在同步问题,您需要使用更改更新只读数据库,比如一夜之间


您还可以将这两个数据库分别放在不同的服务器上,以进一步提高性能。

只读数据库的好处很明显:没有表锁定,在您尝试读取数据时没有人更改数据

但是,您确实存在同步问题,您需要使用更改更新只读数据库,比如一夜之间


您还可以将这两个数据库放在不同的服务器上,以进一步提高性能。

我认为只读关系数据库没有太大的好处


也许您正在考虑的是一个OLAP,其中数据被严重地反规范化为多维矩阵。请看一看SQL Server分析服务。

我认为只读关系数据库没有多大好处


也许您正在考虑的是一个OLAP,其中数据被严重地反规范化为多维矩阵。请查看SQL Server Analysis services。

如果应用程序通过已知的存储过程、报表等限制对数据库执行SQL语句,请不要担心只读副本。毕竟,数据库是用于同时读取、写入和更新的。毕竟,您将测试您的系统,并确保您的SELECT查询不会锁定表,以便其他用户无法插入/更新/删除


但是,如果您提供了一种访问数据的临时方法(即使用链接表的MS Access),那么您肯定希望拥有一个只读数据库。否则,用户可以编写特殊查询,如Everyoneuses从BigGestTable中选择*,这可能会与其他试图在该表中插入/更新/删除记录的用户产生死锁。

如果您的应用程序通过已知的存储过程、报告等限制对数据库执行SQL语句。,不要担心只读副本。毕竟,数据库是用于同时读取、写入和更新的。毕竟,您将测试您的系统,并确保您的SELECT查询不会锁定表,以便其他用户无法插入/更新/删除


但是,如果您提供了一种访问数据的临时方法(即使用链接表的MS Access),那么您肯定希望拥有一个只读数据库。否则,用户可以从最大的表中编写特殊查询,如SELECT*,这可能会造成其他用户在该表中插入/更新/删除记录时的死锁。

这是一个体系结构问题,属于资源规划范围。