Getting Started with Adobe After Effects - Part 6: Motion Blur

Upload Image Close it
Select File

My technology blog on SQL Server, TSQL, XML, FILESTREAM and other areas of SQL Server.
Browse by Tags · View All
XML 112
XQuery 69
XQuery Functions 67
XQuery Training 65
XQuery in TSQL 64
XQuery Tutorial 63
SQL Server XQuery 63
XQuery-Labs 57
BRH 38

Archive · View All
September 2008 32
August 2008 30
July 2008 21
August 2009 19
June 2009 19
May 2010 18
January 2009 15
January 2010 14
October 2008 14
June 2008 13

Meeting The SQL Server Heroes - 2 - Michael Rys

Nov 23 2008 2:18PM by Jacob Sebastian   

This was my first meeting with Michael. For those that don’t know him, Michael Rys is the principal program manager lead for SQL Server’s Beyond Relational Data team and represents Microsoft on the W3C xml query working group. We had exchanged a lot of emails on various XML/XQuery stuff in the past but never got a chance to meet in person. He presented an interesting session on XML/XQuery best practices for improving XQuery performance. He was kind enough to dedicate quite a lot of time with me after the session, discussing a long list of problems and feature-requests that I put forward.

Here is a quick summary of the feature requests/enhancements I discussed.

  1. Memory and performance issues while dealing with large XML documents. XQuery seems to be performing well if the size of the XML document is relatively small. However, if the document size is over a few MBs, XQuery seems to be bit slow and if the document is pretty big (say, 50 or 100 MB) there seems to be some memory issues. [OPENXML() seems to be performing better when the document is big. However, this may vary from case to case]
  2. After performing an XQuery modify() operation, there is no way to verify that the value/element/attribute is updated/inserted/deleted. You can update an element that does not exist and the modify() operation will still succeed. You can attempt to delete an element or attribute that does not exist and still the operation will succeed. There is no easy way to identify if the operation REALLY did any modification in the XML content or not. The only way we can do this currently is by running a second query after the update/insert/delete operation and see if the data is modified or not.
  3. There is no built-in support for comparing two XML values. [Well, you can use my function posted here :-) ]
  4. Need a way to check if a given string is a WELL-FORMED XML string. This can avoid generating an error while trying to cast a string to XML. [something close to ISDATE() or ISNUMERIC() functions]
  5. There is no way to generate the XML declaration [<?xml version="1.0" ...] when generating XML documents using FOR XML. The only option we have currently is to use string concatenation.
  6. When generating XML documents with namespace declaration using FOR XML PATH, the namespace declaration is repeated along with each child element. Ideally, this should be present only within the top level element.
  7. Position of elements is significant in XML. There is no way to retrieve the position of elements from an XML document [..and I have posted a workaround here]. It would be great if an XQuery expression can return the position/row-number of each element present in the XML document.
  8. There is no way to validate an XML document against a schema collection. The only workaround available currently is to do an assignment operation within a TRY-CATCH block. If the operation succeeds, the XML is valid and if an error is raised, the XML is invalid. There needs to be a better way to do this.
  9. SSMS comes with a nice XSD/XML editor. However, there is no way to invoke this editor. There is no toolbar, menu or keyboard short-cut. One dirty way to launch this editor is by opening an XML document from 'file->open' and SSMS will load the XML document in the XML/XSD editor.
  10. There is no way to update multiple elements in a single query. If an XML document contains 10 Employee elements and If I want to update all of them in a single query, it is not possible currently.
  11. When generating XML documents using FOR XML, the element names should be static. So we need to have prior knowledge of the element names. If the name of the elements come from a table, a dynamic query is needed to generate the XML document. [Michael suggested a way to get this done, but I could not make it work. I will contact him again and take some help to test this]
  12. There is no way to retrieve the path at which a given value is placed within the XML document.
    • A few people asked me about this. I am still not sure how important this feature is and have not filed a connect item yet. If you think this is an important feature, please go ahead and create a connect item. [Please do not forget to share it with me :-)]
  13. Types declared within schema collections are not re-usable outside the schema collection. This will result in a lot of code duplication and maintenance head-ache.
  14. Need a way to generate an XML tree (recursive) using FOR XML. A recursive function (as given in books online) is not very efficient. I have posted a workaround here, but that is bit complex. We need something simpler.

I am interested to hear your thoughts on these points. If you think some of these are really important, please go ahead and vote for them and it will help the dev team to prioritize features for the next release.


Michael and Jacob

The meeting was quite exciting and very helpful. Thank you Michael for allocating enough time for the meeting, even though you were having a very busy schedule!

Tags: XML, SQL Server Heroes,

Jacob Sebastian
1 · 100% · 32235


Your Comment

Sign Up or Login to post a comment.

    Copyright © Rivera Informatic Private Ltd Contact us      Privacy Policy      Terms of use      Report Abuse      Advertising      [ZULU1097]