问题标签 [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.
php - PHP + MySQL 适合 VLDB
我正在开发两个网站 - 一个有几张桌子,另一个有超过 50 张桌子。我正在使用 PHP 和 MySQL。
这两个网站的一些表格预计每年将收到超过十万行。我在 StackOverflow 的一些帖子中读到,几十万行对 MySQL 来说不是问题。但在我的网站中,行数将在大约 10 年或更长时间内达到“巨大”。
此外,在预期的高峰时段,从这些表访问数据库的次数将非常高。
所以,我有两个问题。首先,MySQL 是否为 VLDB 或类似场景做好了准备?其次,即使使用索引等技术来加速数据库访问,MySQL 能否在极端负载下处理大量请求?如果没有,我应该改用哪个 DBMS?
oracle - 行数 > 10B 的 Oracle 表
您在查询具有 >10B 行的 Oracle 表方面有何经验?表被很好地分区可以使用“noraml”机器(集群)来完成,还是 - 它需要一台巨大的机器吗?
谢谢!
postgresql - VLDB 中的查询优化
我有一个非常大的数据库,大小高达 2 GB 左右。数据库包含 10 个表,其中一个表有 60 多列和 13902134 行(vt_owner)
执行这个查询需要很多时间!目前使用 btree 索引。我想优化这个查询,并想要一些关于如何去做的建议。使用 postgres 9.2
我决定对表进行垂直分区,然后在各个分区上应用索引。
vt_owner 表定义
我也想过创建三元组。请我需要一些帮助。
mysql - 一个 mySQL 数据库可以有多个文件来分散 IO 吗?
在用于 IO 密集型数据库或通常用于 VLDB 的 SQL Server 中,我们创建多个数据库文件并将它们放在单独的磁盘/Lun 上,以分散 IO 工作负载。
我看不出这如何使用 mySQL 实现,因为默认情况下,所有数据库都是在实例目录中创建的,无法选择将它们放在其他位置或创建多个文件。我错过了什么?
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 属性的多个选项,但无法实现属性之间以及属性和事实表之间的左外连接。
sql-server - 在 SQL 2014+ VLDB 上进行 PAGE 数据压缩后回收磁盘空间
我有一个非常大的只读数据库,有大约 30 个表。数据库的总大小约为 13 TB,最大的表约为 4.5 TB。(大约有 10 个大小为 1TB+ 的表,然后是几个较小的表。)目前,数据库被分成 8 个数据文件,都在 PRIMARY 文件组中。
我已经对一些大表应用了 PAGE 级数据压缩,这将 DB 的大小减少到 10TB 左右,但是,我真的很想回收磁盘上的一些空间。(这个数据集是只读的——它永远不会增长。)
我意识到缩小文件会导致大量碎片,这可以通过重建所有索引来解决,但重建索引可能会导致文件再次增长......啊!
这导致了我关于如何在压缩后回收磁盘空间的问题:
- 我唯一的解决方案是将所有表/数据复制到具有较小文件的新文件组中,删除原始表,然后清空/删除或缩小原始文件吗?
- 是否有人知道任何脚本或工具可以帮助我确定所需的最佳文件大小?
- 最好的做法是
- 使用聚集索引 + PAGE 压缩在新文件组上创建新表
- 从原始表中插入/选择到新表中(使用 TF 610 和 tabblock)
- 删除原始表
- 在新文件组上创建非聚集索引
这似乎是一项艰巨的任务,需要很长时间,因为我将不得不基本上重新创建我的整个数据库......再次。我缺少一个更简单的解决方案吗?
sql-server - 用具有数据子集的表副本替换,而不是从表中删除 - 最佳方法
我们有一个包含 800M 行和 93 列的表,需要删除历史数据。要删除的数据占> 95%。到目前为止,尝试批量删除都失败了,估计至少需要一周时间才能完成。现有指标是缓慢的主要原因。删除索引并在删除后重建也被证明在测试中太慢了。
决定我们应该创建一个只包含我们需要的数据的新表,然后将旧表重命名为备份并将新表重命名为原始表。
问题是至少有一百个键、约束和索引。
我们正在考虑从对象浏览器生成一个脚本,使用查找/替换重命名所有对象名称,创建相同结构的表,填充数据,将原始表重命名为备份,然后将新表和所有对象重命名为原始表中包含的对象桌子。
这是实时数据库上的一个关键表,只需几个小时即可完成该过程。如此多的手动重命名让我们感到紧张,因为当客户开始交易时不会有任何问题。
最可靠的方法是什么?是否有自动化流程来执行此程序?任何建议表示赞赏。
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 类似,但遗憾的是没有提供解决方案。我已经尝试了几种解决方法,但还没有运气。任何帮助或其他建议将不胜感激。
visual-c++ - MSVC 显示内存泄漏,而 VLD 没有
全部,
我正在开发一个程序并使用 MSVC 2017 社区进行编译。我还使用 VLD 来识别和修复内存泄漏。
我看到的问题是退出时 MSVC 报告内存泄漏,而 VLD 说:“未检测到内存泄漏”。
所以现在我不知所措——我应该相信谁?如果 MSVC 是正确的 - 我需要一种方法来识别泄漏以修复它。如果我信任 VLD - 我将继续前进。
有一段时间,两者都报告了泄漏,我已经修复了。但这次只有一个工具在报告。
感谢您提供的任何提示。