I'm trying to query an xml column in sql server. I've created a primary index on the column and query it using:
SELECT *
FROM MyTable
where Doc.exist('/xml/root/propertyx/text()[. = "something"]') = 1
In a table with 60 000 entries , this query takes some 100 ms on my local dev machine. Is it possible to optimize this somehow to increase performance of the query?
You can optimize for fast query times with a calculated column. A calculated column can't use the XML functions directly, so you have to wrap them in a function:
If you declare the function with
schemabinding
, you can create an index on SomethingExists:This should make the query much faster.