从针对另一个数据库

时间:2015-08-06 14:26:59

标签: sql sql-server database database-backups

这基本上就是我的情景:

  • 我有一个关系数据库,每个表包含许多表和数百万行。
  • 对于某些大型查询,对此数据库的搜索速度非常慢,因此我创建了几个视图,对数据进行了一些按摩和一些计算,它通过连接表格等为我提供了所需的确切数据。

  • 现在我有了观点,我可以对它们进行超级简单的查询,并且可以非常轻松地提取我需要的确切信息。但是,如果我在运行时在用户点击我的网站上的按钮时执行此操作,则需要花费大量时间并且用户可以获得一些超时。这是因为无论我使用的是一个简化生活的视图,都会针对同样庞大而庞大的数据库执行查询...

我基本上喜欢做的是拥有一个第二个数据库(它将连接到我的前端,而不是当前的数据库),我可以在那里获得我感兴趣的数据#&# 39; ve在初始数据库上创建(这是我需要的确切数据),但我不知道如何实现。

  1. 我应该创建一些针对第二个数据库执行的存储过程,然后使用新数据更新第二个数据库的表吗?我怎么能这样做?我已经创建了第二个数据库,其中包含视图生成的表,但我需要开始填充该数据,我不知道如何首先批量处理初始数据,其次,如何在第一个数据库中尽快增加数据数据库开始增长......
  2. 另外,我认为一个好主意是在第一个数据库被填充数据库的后端工具修改后立即更新第二个数据库。这可能吗?触发器是我需要的吗?我怎么能这样做?
  3. 非常感谢任何指针和示例。

    谢谢!

2 个答案:

答案 0 :(得分:0)

如果您想要一种简单的方法从视图加载带有数据的第二个数据库,您可以运行并插入这样的语句

INSERT INTO [secondDB].[dbo].[table_name]
(ColumnNames,...,N)

SELECT * 
FROM View
WHERE column1ID = ID
etc...

答案 1 :(得分:0)

您应该使用日志传送。

https://msdn.microsoft.com/en-us/library/ms190640.aspx

来自主服务器的所有交易将被发送(因此名称)几乎立即发送到辅助服务器或延迟您选择。

但是,视图确实可以让您的生活更轻松,但性能问题很可能是由于设计/模型不良,缺少索引,碎片索引,错误统计信息,索引太多或无用索引造成的。 你也看过这个吗?