1
2
以下是您的一些选择:
设置复制以将数据移动到您自己的SQL Server,并在那里创建您需要的任何视图。管理员必须对此进行设置。如果需要在数据更改时查看数据,请使用事务复制。如果没有,您可以创建快照。 请在此处阅读更多信息: http://technet.microsoft.com/en-us/library/ms151198.aspx
专用数据 在与您的服务器相同的服务器上 为您提供写访问权限。在那里创建您的视图。 您的视图创建可以如下所示:
相同实例,不同服务器+不同实例: 我建议在与ProductionDB相同的SQL Server实例上创建MyDB,而不是安装新实例。就资源而言,一台计算机上的多个SQL Server实例比同一实例上的新数据库要昂贵得多。 标准可重用视图 创建一组标准化视图,并要求管理员将它们放在只读服务器上,然后在查询中重用这些视图 |
2
1
您还可以使用CTE,其作用类似于视图。 如果拉杰·莫尔的建议对你不起作用,我会支持的。。。
|
3
0
您可以要求DBA为像您这样的“承包商”创建一个模式,并允许您仅在该模式内创建对象。 |
4
0
|
5
0
如果您有权访问其他SQL server,DBA可以创建一个“链接服务器”。然后,可以创建使用由四部分组成的名称访问数据的视图。例如,从OtherServer.OtherDB.dbo.Table中选择* 在任何一种情况下,数据都是“活动的”,因此无需担心脏数据。 这些视图将为您带来更清晰的代码和进行更改的单个位置,并从缓存的执行计划中获得几毫秒的性能优势。然而,不应该有巨大的性能飞跃。您提到了缓存,但据我所知,服务器没有做任何特定的操作 数据 缓存普通的、无索引的视图,这对于特殊查询是不可能的。 如果您还没有这样做,您可能希望做一些实验,看看视图是否真的更快——制作一个数据库副本并将视图添加到那里。 编辑:我今天做了一个类似的实验。我在Server1上有一个存储过程,它通过链接服务器从Server2获取数据。这是一个复杂的查询,连接了两台服务器上的许多表。我在Server2上创建了一个视图,该视图从该服务器获取了我需要的所有数据,并更新了proc(在Server1上),以便它使用该视图(通过链接服务器),然后将该视图加入到Server1上的一组表中。更新后速度明显加快。原因似乎是Server1没有估计它将从Server2获得的行数,因此构建了一个糟糕的计划。它在使用视图时做得更好。如果视图与它正在读取的数据在同一个数据库中,这并不重要,它必须在同一个服务器上(我只有实例,所以我不知道实例是如何发挥作用的)。
|
6
0
通过使用视图,查询的性能不会更好。您需要优化这些查询,并且可能应该对这些表建立一些索引,以支持您的查询。
通过这种方式,您不会立即看到对原始数据库所做的更改(会有延迟),但您可以让查询执行得更快,如果您愿意,甚至可以创建这些视图。 |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
SoT · SQL Server中求和函数的工作方式 2 年前 |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |