将层次结构信息存储在MS Access DB中以加快查询速度

时间:2015-07-15 19:24:28

标签: sql ms-access database-administration

我试图弄清楚如何在MS Access DB中存储分层类型信息,以便查询更快。用例示例可能更有意义。

  • 我有一个有两个字段的表
    1. 一个名字
    2. 层次结构
  • 层次结构是级别文件夹结构的X#:
    • \a\b\c\d
    • \a\b\c\d\e
    • \a\b\c\d\f\g
    • \a\b\h
    • \a\b\i\j
    • 你明白了
  • 该表将填充300,000行
  • 每一行都有一个名称和一个层次结构

此时:

  • 如果我想查找层次结构中的所有名称,包括子层次结构,我可以运行类似的查询:where [hierarchy] like '\a\b\*'
  • 我甚至可以进行通配符连接,即使MS Access的查询设计GUI没有处理它,我必须使用SQL视图:join on [hierarchy] like '\a\b\*'

但它可能会很慢。特别是如果我的联合变得复杂。

所以我想也许有一种方法可以创建另一个表,它将保留所有层次结构,并且它将保持父/子关系,第一个表将引用其中的一行。然后,不知何故,我可以使用它来查找第一个表中与第二个表中的层次结构和子层次结构匹配的行。

然而,我不知道这是否可能,以及我将如何进行。任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

在Oracle中,我们使用层级结构,其中每一行都有对其父级的引用。然后使用CONNECT BY子句,您可以将这些行彼此连接起来。

你应该看看这里:simulation of connect-by in sql-server