测试积点老人 发表于 2019-12-17 13:15:46

sql server XML数据类型存储,模糊搜索的性能如何提升?

sql server XML数据类型存储,模糊搜索的性能如何提升?
最近有个项目,其中一个业务是客户输入的信息字段不固定(字段合集大概100多个,客户可能只会挑选其中5-15个填写),这里我使用的是动态XML存储客户数据,自然就想到了mssql里面的xml数据类型,研究了半天时间(其中xml主索引,xml辅助索引-path索引、value索引都加了),发现这个字段内容值模糊查找性能很差:1.测试了姓名节点模糊查找;2.测试了时间段的查找,运行结果如下(数据量测试环境下是200W条,实际项目上线运行数据量会以每月15W左右的量逐步增加):
SELECT * FROM dbo.user_info_xml WHERE info_xml.value('(/customers/user_name)','nvarchar(50)') LIKE '%孙%' --19秒
SELECT * FROM dbo.user_info_xml WHERE info_xml.exist('/customers/user_name/text()') = 1--14秒
SELECT * FROM dbo.user_info_xml WHERE info_xml.value('(/customers/play_date)','datetime') > '2015-3-21'
AND info_xml.value('(/customers/play_date)','datetime') < '2015-3-24' --29秒

不知有无其他办法,可以从mssql本身的xml数据类型来讨论,也可以以这个业务来讨论抛弃mssql存储方式。

qqq911 发表于 2019-12-18 11:03:37

多表存储吧

jingzizx 发表于 2019-12-18 12:22:12

顶一下,最后查一下各类策略

litingting0214 发表于 2019-12-18 13:07:32

建议建多个表存储

bellas 发表于 2019-12-18 14:21:05

议建多个加索引
页: [1]
查看完整版本: sql server XML数据类型存储,模糊搜索的性能如何提升?