【发布时间】:2015-11-16 08:59:01
【问题描述】:
我正忙着创建一个简单的 DBTester 程序,它带有一个可以测试和比较多个(某种)数据库的数据访问层。目前我已经为 SQL Server 和 MarkLogic NoSQL 实现了 Add(Insert)。
令我惊讶的是,使用 MarkLogic XCC/.Net XQuery 插入/添加 1 M 个人实体比使用 SQL Server 2008 R2 需要更多时间。 SQL Server 在数据访问层中需要几分钟,其中 11 秒在 11654 毫秒内。 MarkLogic 8 在 15 分钟内仍然忙于 15621 个实体!
我是 NoSQL MarkLogic 和 XCC/XQuery 的新手,可能做错了什么。 我的 MarkLogic 测试代码可以在 GitHub 上找到:https://github.com/driekus77/DBTester/blob/master/DBTester/DataAccessLayer/Repository/MarkLogic/PersonRepository.cs#L48
相应的 SQLServer Add 代码可以在以下位置找到: https://github.com/driekus77/DBTester/blob/master/DBTester/DataAccessLayer/Repository/SQLServer/PersonRepository.cs#L64
那么我做错了什么?我应该直接使用 MarkLogic RestAPI 吗?我应该使用 JSON 而不是 XML 吗?有什么方法可以加快我的 XQuery Add 调用速度?
感谢您的帮助!
【问题讨论】:
-
我没有回复答案,因为深入研究您的代码需要相当长的时间。但是,需要注意的是,在 MarkLogic 中,默认情况下,您正在执行事务,您正在进行词干提取,您正在以各种方式为每个元素编制索引,包括类似 db 的选择以及一些非常强大的搜索引擎(单词查询)能力。所以作为开始,我不确定。此外,将数据加载到一个系统或另一个系统的方式存在很大差异。
标签: xquery marklogic marklogic-8