Wednesday, November 21, 2007

One last SQLCLR feature I'd forgotton about but was quite highly publicized. This is extension of SQLCLR UDT and UDAgg maximum size from 8000 bytes to 2gb. You just the MaxByteSize of -1 in the appropriate attribute, like this:

[SqlUserDefinedAggregate(Format.UserDefined, MaxByteSize=-1,IsNullIfEmpty=true)]

The serialization format is going to have to be UserDefined, the limt for Format.Native is still 8000 bytes.

Just catalog the UDT or UDAgg and use it as you would any other TYPE/AGGREGATE. I crufted up a proof-of-concept one pretty easily, and the new spatial data types (GEOGRAPHY and GEOMETRY) are also large (system) UDTs, so you know this works as of CTP5.

Now you can have your "infinite" UDT that holds an array or "infinite" string concatenation UDAgg. Enjoy.

Wednesday, November 21, 2007 7:39:46 AM (Pacific Standard Time, UTC-08:00)  #    Comments [3]  | 
Tuesday, November 27, 2007 2:33:20 PM (Pacific Standard Time, UTC-08:00)
2gb... what size of RAM should be used to handle and proceed on this kind of data?
How to write 2gb data to memmory in single proces without timeout?
Wednesday, November 28, 2007 9:31:39 PM (Pacific Standard Time, UTC-08:00)
I work in an agency that had the chance to chat with the Microsoft developers behind Windows Server 2008.

Check out the vids http://www.youtube.com/microsoftdevelopers and meet some colourful characters…
Sunday, December 09, 2007 12:25:29 AM (Pacific Standard Time, UTC-08:00)
You do need to monitor excessive SQLCLR memory use; this feature is likely to be used for data that can be close to but can be just over 8000 bytes. Some of the current data types have a limit of 2gb and the new spatial types, exposed as CLR types can sometimes exceed 8000 bytes.

Bob
Comments are closed.

Theme design by Jelle Druyts

Pick a theme: