几天前,我尝试使用扩展事件替换SQL Server探查器。 然后我想用sql将生成的xel文件放在sql server数据库中。
我认为很可能,很多网站都使用带有Cross Apply的函数节点来获取XML中的值,即使它比不使用它更慢。 我不知道我错过了什么?
答案 0 :(得分:3)
简而言之:你可以用链锯切面包,或者你可以使用一些裸线,但不要责怪工具,如果结果不令人信服(即使它非常快:-D)... < / p>
如果有.nodes()
个相关子节点,则需要 1:n
才能将其作为派生表进行检索。
当.nodes()
增长到某个大小时,很多人使用XPath
只是为了让代码更易于阅读,特别是对于非常深层嵌套的元素......
您将获得一个名为的当前节点,您可以从中继续XPath navigation
或XQuery
。使用多个嵌套XML,您可以使用级联.nodes()
来深入挖掘。
如果您确定,<event>
下面只有只有一个元素且名称为<data>
且属性为@Name
使用值NTCanonicalUserName
,不需要.nodes()
。可能最快的是使用像
/event[1]/data[@name="NTCanonicalUserName"][1]/value[1]/text()[1]
重要!
如果具有给定属性的<event>
或多个<data>
可能不止一个.nodes()
,则“快速”调用将返回第一次出现的情况。这可能是错误的......并且你永远不会发现,还有另外一个......
您的“快速”通话速度很快,因为引擎事先知道,只会有一个结果。使用{
"products": [
{"id": 1, "category": "paint", "name": "clowd", "type": "matt emulsion", "stocked": true, "size": "100x130", "thumbnail": "23-sm.png", "previewImg": "23.png"},
{"id": 2, "category": "paint", "name": "dålig sikt", "type": "matt emulsion/olja/akryl", "stocked": true, "size": "100x130", "thumbnail": "24-sm.png", "previewImg": "24.png"},
{"id": 25, "category": "print", "name": "MIMI | 2nd edition", "type": "akvarellppr, 70x100", "limited": "30", "available": "28", "price": "3,000", "stocked": true, "thumbnail": "mimisecond-sm.jpg", "previewImg": "mimisecond.jpg"},
{"id": 26, "category": "print", "name": "max", "type": "uppspänd canvas, 95x120", "limited": "30", "available": "28", "price": "7,000", "stocked": true, "thumbnail": "max-sm.jpg", "previewImg": "max.jpg"},
{"id": 38, "category": "places", "stocked": true, "desc": "Vernisage Strössel @ Linnégatan, sthlm 2015", "thumbnail": "17.png", "previewImg": "17.png"},
{"id": 39, "category": "places", "stocked": true, "desc": "Max @ Nybergsgatan, sthlm 2016", "thumbnail": "26.png", "previewImg": "26.png"}
]
}
时,eninge将不得不寻找进一步的出现,并将为开始的表创建结构。
一般建议
如果你知道什么,引擎无法知道,但会使阅读更快,你应该帮助引擎......
相关提示
在内部,真实/本机XML数据类型不会存储为您看到的字符串表示形式,而是存储为分层结构树。处理XML的速度非常快......在您的情况下,搜索只是将树直接跳到想要的元素。