代码之家  ›  专栏  ›  技术社区  ›  pauljwilliams

Oracle文本URL索引性能

  •  1
  • pauljwilliams  · 技术社区  · 15 年前

    我有一个Oracle表,它有两列——id和url。

    网址很简单 http://somemachinename/mypage.php?id=

    然后,我使用URL列上的URL数据存储创建Oracle文本索引。

    如果我这样做:

    BEGIN
    ctx_ddl.sync_index(idx_name        => 'MY_INDEX',
                       memory          => '50M',
                       parallel_degree => 4);
    END;
    /
    

    然后,如果我查看somemachinename上的Apache日志,我可以看到Oracle依次请求所有URL。

    问题是,Oracle依次请求大约60个URL,然后停止15秒,然后再请求另外60个ISH URL。

    HTML页面中的数据量很小-小于3K,所以60个页面不应该填充任何缓冲区-即使是这样,也不应该花费15秒来清除缓冲区。

    运行wireshark表明延迟肯定是在请求到达时(而不是Web服务器的问题),所以我不知道Oracle在这15秒内在做什么。

    索引是一项重要的工作(表有大约200万行),目前需要一周时间,如果没有del,我想它会像小时一样……

    有什么想法吗?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Gary Myers    15 年前

    “所以我不知道甲骨文在15年代做了什么。” 您可以查看v$session上的wait/event。可能是因为CPU在解析HTML,或者是因为它需要先将数据写到某个地方(临时表空间)。

    难道不认为网络方面有什么东西把这当作某种攻击吗?