草庐IT

慢查询SQL排查

全部标签

sql-server - T-SQL : How can I compare two variables of type XML when length > VarChar(MAX)?

仅使用SQLServer2008R2(这将在存储过程中),如何确定两个XML类型的变量是否等价?这是我想做的:DECLARE@XmlAXMLDECLARE@XmlBXMLSET@XmlA='[ReallylongXmlvalue]'SET@XmlB='[ReallylongXmlvalue]'IF@XmlA=@XmlBSELECT'MatchingXml!'但是您可能知道,它会返回:Msg305,Level16,State1,Line7TheXMLdatatypecannotbecomparedorsorted,exceptwhenusingtheISNULLoperator.我可以转

sql - 更新给定值的 Oracle XMLType 列内容

我在Oracle11g数据库中有一个表SECTION_ANSWER,它有一个XMLType列。XML非常简单,它遵循以下结构:Green101102105107我需要将“105”的答案更新为“205”。我过去使用UPDATEXML做过类似的事情。例如,如果我要更新只有一个答案的问题ID1,我可以这样做:UPDATESECTION_ANSWERsaSETsa.section_answerxml=updatexml(sa.section_answerxml,'//section[@sectionID="1"]/question[@questionID="1"]/answer/text()'

sql - 如何在 T-SQL 中透视 XML 列的属性

我需要对表中的XML列执行数据透视,其中XML包含具有多个属性的多个元素。每个元素中的属性始终相同,但元素的数量会有所不同。让我举个例子...FormEntryId|FormXML|DateCreated====================================================================================1||10/15/2009||||||||||||||-----------------------------------------------------------------------------------

sql - 在查询生成的 xml 上添加命名空间

我尝试使用WITHXMLNAMESPACES在xml上添加命名空间。当我执行查询时,namespace添加了根元素,但第二个元素我也有xmlns=""...我想删除它.​​..我举了一个例子:创建表和数据的查询:SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[tblTest]([Id][int]IDENTITY(1,1)NOTNULL,[Name][nvarchar](30)NOTNULL,CONSTRAINT[PK_tblTest]PRIMARYKEYCLUSTERED([Id]ASC)WITH(PAD_INDEX

xml - 将属性添加到由 SQL FOR XML 路径创建的元素节点

我正在尝试匹配SQLServer2008TSQL查询中的一些XML输出。我正在匹配的XML可以返回项目列表。列表由属性名称标识-而不是节点名称。XML路径函数将返回一个包装器节点,但我找不到向该节点添加任何属性的方法。在我的例子中,它们将是基于我正在运行的表名的硬编码值,它们是根据它们选择的。我在其中将“x”作为“x”,以将两个列表分开。在我的实际数据中,这不是问题,因为它们位于不同的节点中。问题只是如何将属性添加到“列表”节点。这是一个SQLFiddlepagefortheexamplebelow:示例架构createtableTable1(Valuevarchar(50));cre

sql-server - 为什么 VALUES(CONVERT(XML ,'...' )) 比 VALUES(@xml) 慢得多?

我想创建一个子查询,生成一个数字列表作为单列结果,类似于MindLoggedOutdidhere但没有@xxml变量,因此它可以作为没有sql参数的纯字符串(子查询)附加到WHERE表达式。问题是参数(或变量)的替换使查询运行慢了5000倍,我不明白为什么。是什么造成了如此大的差异?例子:/*Createaminimalisticxmllike7891...*/DECLARE@p_strVARCHAR(MAX)='789101123456789101123456789101123456';DECLARE@p_xmlXML=CONVERT(XML,''+REPLACE(@p_str,''

c# - 如何在查询 XML 时在 LINQ 中添加 OR 条件?

问题:返回所有记录whereJonDoe=或.当前代码返回记录1,那么需要做哪些修改才能使用一次查询返回记录1和2?XML1Name1JonDoeBruceWayne2Name2PeterParkerJonDoeC#classProgram{staticvoidMain(string[]args){XElementmain=XElement.Load("master_list.xml");varresults=main.Descendants("row").Descendants("bus_contact").Where(e=>e.Value=="JonDoe").Select(e=>

xml - 如何在 REST 中传递复杂的查询?

如果我理解正确,在rest风格中,每个查询(即对每个资源的每个不修改资源状态的操作)都应该使用get方法编码在查询字符串中,根本没有主体。我说得对吗?好吧,我有几个应用程序通过VisualBasic6组件处理的XML消息与数据库通信。查询的消息是这样的accountinvoicequery110date*2009-01-01..2009-01-3124现在我们正在重新设计我们的XML消息,我们希望以一种可以轻松将它们映射到RESTful接口(interface)的方式进行。在前面的例子中,我们需要“conditions”标签来防止参数和条件之间的冲突(即,如果我有一个名为“order”

SQL 更新查询以根据 xml 节点值更新记录中的 xml?

我有一列ntext数据类型而不是XML。它存储所有xml数据。我需要更新记录中的xml节点。它会抛出一条错误消息“不正确地使用xml数据类型方法‘修改’。在此上下文中应使用非突变方法。”begintransactiondeclare@Cps_Idint;set@Cps_Id=236;declare@Cps_Messagenvarchar(1024);set@Cps_Message='updatingcpsiamessagewithsmoking';updatetable_namesetcolumn_name=CONVERT(xml,column_name).modify('replac

sql - 在 SQL Server 中合并 XML

假设我的数据库中有以下两段XMLxml1avaluexml1bvaluexml1cvaluexml2cvaluexml2dvaluexml1evalue此数据使用XML数据类型存储在两个单独的表中,此外,此XML列链接到描述预期xml格式的架构,例如[PairData][xml](CONTENT[foo].[Pairs])NULL在存储过程/函数中,我想将这两个XML结构合并为以下内容:xml1avaluexml1bvaluexml2cvaluexml2dvaluexml2evalue因此,我们从第一段xml中获取了项目:a,b我们从第二段xml中获取了项目:c,d,e请注意,这两段X