问题标签 [vldb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
222 浏览

php - PHP + MySQL 适合 VLDB

我正在开发两个网站 - 一个有几张桌子,另一个有超过 50 张桌子。我正在使用 PHP 和 MySQL。

这两个网站的一些表格预计每年将收到超过十万行。我在 StackOverflow 的一些帖子中读到,几十万行对 MySQL 来说不是问题。但在我的网站中,行数将在大约 10 年或更长时间内达到“巨大”。

此外,在预期的高峰时段,从这些表访问数据库的次数将非常高。

所以,我有两个问题。首先,MySQL 是否为 VLDB 或类似场景做好了准备?其次,即使使用索引等技术来加速数据库访问,MySQL 能否在极端负载下处理大量请求?如果没有,我应该改用哪个 DBMS?

0 投票
2 回答
149 浏览

oracle - 行数 > 10B 的 Oracle 表

您在查询具有 >10B 行的 Oracle 表方面有何经验?表被很好地分区可以使用“noraml”机器(集群)来完成,还是 - 它需要一台巨大的机器吗?

谢谢!

0 投票
1 回答
153 浏览

postgresql - VLDB 中的查询优化

我有一个非常大的数据库,大小高达 2 GB 左右。数据库包含 10 个表,其中一个表有 60 多列和 13902134 行(vt_owner)

执行这个查询需要很多时间!目前使用 btree 索引。我想优化这个查询,并想要一些关于如何去做的建议。使用 postgres 9.2

我决定对表进行垂直分区,然后在各个分区上应用索引。

vt_owner 表定义

我也想过创建三元组。请我需要一些帮助。

0 投票
1 回答
405 浏览

mysql - 一个 mySQL 数据库可以有多个文件来分散 IO 吗?

在用于 IO 密集型数据库或通常用于 VLDB 的 SQL Server 中,我们创建多个数据库文件并将它们放在单独的磁盘/Lun 上,以分散 IO 工作负载。

我看不出这如何使用 mySQL 实现,因为默认情况下,所有数据库都是在实例目录中创建的,无法选择将它们放在其他位置或创建多个文件。我错过了什么?

0 投票
1 回答
2519 浏览

left-join - MicroStrategy 维度表左外连接事实表场景

我正在尝试使用给定的表在 MicroStrategy 中模仿以下 SQL

  • master_dimension - Itemkey, color, weight, season, target_age_group... 1000 行,包含 1000 个唯一项目

  • sub_dimension - item_key,need_special_handling - 400 行,1000 个项目中只有 400 个在此表中有行

  • 价格 - item_key, price, start_date, end_date - 600 行,其中 200 个独特的产品具有价格/价格变化

  • stock - item_key,available_stock_qty - 155 行,155 个具有库存数量的独特产品

我创建了属性 itemkey,所有涉及的表作为查找,主查找表作为 master_dimension。我将 itemkey 属性的 VLDB 属性修改为 joins->preserve all final pass result elements -> 第三个选项(保留 final pass 的所有元素......但不保留关系表)。我将报表 VLDB 属性修改为连接 -> 保留所有查找表元素 -> 第 4 个选项(保留查找元素...带过滤器)。我使用了 VLDB 属性的多个选项,但无法实现属性之间以及属性和事实表之间的左外连接。

0 投票
1 回答
1621 浏览

sql-server - 在 SQL 2014+ VLDB 上进行 PAGE 数据压缩后回收磁盘空间

我有一个非常大的只读数据库,有大约 30 个表。数据库的总大小约为 13 TB,最大的表约为 4.5 TB。(大约有 10 个大小为 1TB+ 的表,然后是几个较小的表。)目前,数据库被分成 8 个数据文件,都在 PRIMARY 文件组中。

我已经对一些大表应用了 PAGE 级数据压缩,这将 DB 的大小减少到 10TB 左右,但是,我真的很想回收磁盘上的一些空间。(这个数据集是只读的——它永远不会增长。)

我意识到缩小文件会导致大量碎片,这可以通过重建所有索引来解决,但重建索引可能会导致文件再次增长......啊!

这导致了我关于如何在压缩后回收磁盘空间的问题:

  • 我唯一的解决方案是将所有表/数据复制到具有较小文件的新文件组中,删除原始表,然后清空/删除或缩小原始文件吗?
  • 是否有人知道任何脚本或工具可以帮助我确定所需的最佳文件大小?
  • 最好的做法是
    1. 使用聚集索引 + PAGE 压缩在新文件组上创建新表
    2. 从原始表中插入/选择到新表中(使用 TF 610 和 tabblock)
    3. 删除原始表
    4. 在新文件组上创建非聚集索引

这似乎是一项艰巨的任务,需要很长时间,因为我将不得不基本上重新创建我的整个数据库......再次。我缺少一个更简单的解决方案吗?

0 投票
2 回答
135 浏览

sql-server - 用具有数据子集的表副本替换,而不是从表中删除 - 最佳方法

我们有一个包含 800M 行和 93 列的表,需要删除历史数据。要删除的数据占> 95%。到目前为止,尝试批量删除都失败了,估计至少需要一周时间才能完成。现有指标是缓慢的主要原因。删除索引并在删除后重建也被证明在测试中太慢了。

决定我们应该创建一个只包含我们需要的数据的新表,然后将旧表重命名为备份并将新表重命名为原始表。

问题是至少有一百个键、约束和索引。

我们正在考虑从对象浏览器生成一个脚本,使用查找/替换重命名所有对象名称,创建相同结构的表,填充数据,将原始表重命名为备份,然后将新表和所有对象重命名为原始表中包含的对象桌子。

这是实时数据库上的一个关键表,只需几个小时即可完成该过程。如此多的手动重命名让我们感到紧张,因为当客户开始交易时不会有任何问题。

最可靠的方法是什么?是否有自动化流程来执行此程序?任何建议表示赞赏。

0 投票
1 回答
195 浏览

sql-server - 日志传送大型数据库

我有关于日志传送的问题:我正在将 VLDB (12TB) SQL 数据库从物理环境(服务器 A)迁移到虚拟环境(服务器 B),并从 SQL 2008 R2 版本迁移到 SQL 2014。迁移的高级计划是在转换\测试期间记录从服务器 A 到服务器 B 的运送。一旦我们对测试感到满意,我们只需将服务器 B 设置为新的生产环境。在此期间,服务器 B 需要接收定期日志恢复(每天一次或两次)并处于只读\待机模式以进行测试。我在相关但不同的域中存在 A 和 B 的附加复杂性,并且我还想使用当前通过现有 Ola Hallengren 制度创建的现有 .trn 文件。所以基本上,我只想利用 COPY & 通过从网络共享中获取 trn 来恢复服务器 B 上日志传送的各个方面。在我尝试使用 VLDB 之前,我正在一个更小的数据库上测试这个概念。我遇到的问题是:-当我尝试让服务器 B 进入待机模式时,我收到此错误:-

“无法使用 WITH STANDBY 恢复此备份,因为需要升级数据库。重新发出 RESTORE 而不使用 WITH STANDBY”

堆栈溢出问题 3010115 和 40760521 类似,但遗憾的是没有提供解决方案。我已经尝试了几种解决方法,但还没有运气。任何帮助或其他建议将不胜感激。

0 投票
0 回答
18 浏览

visual-c++ - MSVC 显示内存泄漏,而 VLD 没有

全部,

我正在开发一个程序并使用 MSVC 2017 社区进行编译。我还使用 VLD 来识别和修复内存泄漏。

我看到的问题是退出时 MSVC 报告内存泄漏,而 VLD 说:“未检测到内存泄漏”。

所以现在我不知所措——我应该相信谁?如果 MSVC 是正确的 - 我需要一种方法来识别泄漏以修复它。如果我信任 VLD - 我将继续前进。

有一段时间,两者都报告了泄漏,我已经修复了。但这次只有一个工具在报告。

感谢您提供的任何提示。