一段sql语句的查询优化
下面这段sql涉及到了三个表的连接查询,其中每个表大概有万行级别的数据,其中大量使用了like,document_summary_normalized.document_summary_normalized 这个字段长度是nvarchar(4000),数据库是sqlserver2K,对这个字段进行全文搜索会不会提高了速度但是损失了准确率?大家有没有好的优化这段查询效率的方法?谢谢了!
select document.written_date,
document.document_id
from document_participant,
document,
document_summary_normalized
where (((document.document_type = 0)
or (document.document_type = 1)
or (document.document_type = 2))
and (((document.title_normalized like '%\1\2\3\4\5%' ESCAPE '\'))
or ((document.al_title_normalized like '%\1\2\3\4\5%' ESCAPE '\'))
or ((document_summary_normalized.document_summary_normalized like '%\1\2\3\4\5%' ESCAPE '\'))
or ((document.keyword_normalized like '%\1\2\3\4\5%' ESCAPE '\'))
or (((document_participant.participant_type = '6')
and (document_participant.participant_name_normalized like '%\1\2\3\4\5%' ESCAPE '\')))
or (((document_participant.participant_type = '6')
and (document_participant.participant_al_name_normalized like '%\1\2\3\4\5%' ESCAPE '\')))
or (((document_participant.participant_type = '7')
and (document_participant.participant_name_normalized like '%\1\2\3\4\5%' ESCAPE '\')))
or (((document_participant.participant_type = '7')
and (document_participant.participant_al_name_normalized like '%\1\2\3\4\5%' ESCAPE '\')))
)
)
and 1 = 1
and document.document_id = document_participant.document_id
and document.document_id = document_summary_normalized.document_id
order by document.written_date desc,
document.document_id asc