首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tempdb大小策略

Tempdb大小策略
EN

Database Administration用户
提问于 2018-05-02 17:57:34
回答 1查看 301关注 0票数 3

我最近开始担任DBA的角色,我的最初任务是获得所有权并重新部署一个由第三方提供的数据库,以帮助我们遵守GDPR法规。

因此,除了项目本身,我并没有真正看到更多的东西。我现在正处于我的数据库已经准备好运行的阶段了,尽管有一些警告。

我现有的一些方面的代码创建了大型临时表(70m+行),并且我知道我的dev数据库已经在这个项目上增长了。

我的问题是,对于这个和以后使用大型数据集的项目,在临时存储的情况下,我应该使用临时数据库还是在我迁移到并删除它们的数据库中创建暂存表?

我问这个问题的原因是,我的live当前的大小还不到1gb,而dev达到了30左右,如果我继续使用临时表,我想要提前增长tempdb,以防止等待自动增长。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-05-02 19:38:32

根据提供的其他详细信息,我建议使用暂存表和临时表。

这些好处是:

  1. 如果有错误,您可以查看数据,因为它是中间过程,以便更容易地进行故障排除。您还可以更容易地控制存在/删除数据(关于GDPR),而不是在有时模糊的tempdb中。
  2. 您可以通过使用持久表并在每次成功处理后截断它们来简化代码。
  3. 您不会同时使用tempdb而可能影响到其他依赖于tempdb的事物。
  4. 正如乔纳森所提到的,它为您提供了一个更稳定的tempdb大小,而不是仅仅因为每周进程的1倍而膨胀。
  5. 模式更清楚地说明了数据是如何使用的,而不是在tempdb的面纱下进行大量的数据处理。这更多的是个人偏好,但我认为对于未来的维护/维护人员来说,这会更加清楚。
  6. 我想不出这种方法有什么巨大的坏处,除非您有更好的磁盘用于tempdb,并且会因为将驱动器用于正常的数据库而受到影响。

大卫·布朗的缺点是:

  1. 缺点是,写入用户数据库会产生更多的IO,因为Tempdb不允许刷新表和日志记录以保证可恢复性。如果数据库完全恢复,如果使用AG,则会进一步加剧这种情况

如果使用此路由,常见的选择是将数据完全隔离到单独的暂存数据库,这可能有助于减轻一些负面影响,因为这不一定需要处于AG或完全恢复模式。

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

https://dba.stackexchange.com/questions/205597

复制
相关文章

相似问题

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