首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将SQL映像列链接到外部数据库?

问如何将SQL映像列链接到外部数据库?
EN

Stack Overflow用户
提问于 2017-03-22 08:10:52
回答 2查看 65关注 0票数 0

我需要在以下方面提供一些帮助。

备注:在下面的场景中,我无法访问应用程序的源代码,因此只能在数据库级别进行更改。

我们的数据库使用dbo.[BLOB]存储各种文件和文档。该表使用IMAGE (是的,过时的)数据类型。由于这个特定的表增长很快,我想实现一些归档功能。

我的想法是将所有超过X个月的文件移动到第二个数据库,然后以某种方式将dbo.[BLOB]表链接到外部/归档数据库。

这有可能吗?目标是减少数据库大小,以提高备份和查询性能。

任何想法和暗示都很感激。

谢谢。法比安

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-22 08:26:03

在本例中,有两个特性可以帮助您实现备份速度和数据库大小:

菲列斯特拉姆将允许您将BLOBS存储为文件系统中的文件,而不是数据库文件。它使备份方案复杂化,您必须同时备份数据库和文件,但是数据库文件越小,对文档的访问时间也越快。从文件系统读取文件比从blob列读取文件要快得多。此外,filestream允许大于2GB的文件。

分区将在物理级别上将表分割成较小的块。这样,您就不需要访问应用程序代码来更改特定行的物理存储位置,并决定哪些数据需要快速访问,并将其放在SSD驱动器上,哪些数据可以降落在较慢的归档文件中。这样,您可以在当前分区上进行更频繁的备份,而在归档中则更少备份。

在Server 2016 SP1之前,此功能仅在企业版本中可用。对于Server 2016 SP1,所有版本都有此功能。

在你的情况下,最有可能的是你应该先使用filestream。

票数 1
EN

Stack Overflow用户

发布于 2017-03-22 10:06:46

W/o修改应用程序--基本上,你什么也做不了。您可以尝试查看应用程序是否允许更改列类型(非常不可能,99.99%它会破坏应用程序),并尝试使用FILESTREAM,但即使成功,它也不会带来多少好处(例如,备份大小相同)。

您可以尝试的第二件事是使用更新触发器将表替换为视图。它仍然很有可能破坏应用程序(假设99.98%)。目标是拥有一个分布式分区视图(或跨DB分区视图),它向应用程序提供了“冷”和“热”数据的统一视图。很复杂,易出错,但是它会减少备份的大小(只要数据从热数据移动到冷数据,并且数据是不变的,只需要很少的备份)。

目标是减少数据库大小,以提高备份和查询性能。

为了减少备份大小,正如我前面所解释的,基本上您什么也做不了。但是,根据您的发现,您需要调查它并适当地处理它的性能。说数据库是慢的,“因为有气泡”,这是挥手。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42945997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档