【发布时间】:2012-04-24 23:18:22
【问题描述】:
我有一张接近 5kk 行的表格。他们每个人都有一个文本列,我在其中存储我的 XML 日志
我正在尝试找出是否有一些日志
<node>value</node>
我试过了
SELECT top 1 id_log FROM Table_Log WHERE log_text LIKE '%<node>value</node>%'
但它永远不会结束。
有什么方法可以改进这个搜索吗?
PS:我不能删除任何日志
【问题讨论】:
-
基本上,自从您搜索
LIKE '%....%'后,您就确定没有任何索引可以提供任何帮助。所以我担心 - 不 - 你真的无法做任何事情来加快这个速度......可能有帮助的唯一事情就是拥有一个DATETIME列并对其进行索引,然后限制您的搜索,例如最后一个月左右(因此只是减少了要搜索的行数......) -
等了10多分钟还是没有结果
-
@EpicVendetta - 听起来不错。
-
另外:没有
ORDER BY的TOP x毫无意义——你只会得到随机结果.....如果你使用TOP——还要定义一个订单! -
log_text列的数据类型是什么,您使用的是哪个版本的 SQL Server?
标签: sql sql-server tsql optimization query-optimization