Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.

March 27, 2008 / by Zsolt Soczó

SQL Server 2008 újdonságok 25. – Large user-defined types and aggregates

Saját típusok és aggregáló függvények esetén maximum 8 kbyte lehetett az adat tárolásához szükséges adatmennyiség mérete. Egy string összefűző UDA emiatt pl. hamar meghalt már pár sornyi adattól is.
Vagy, ha mondjuk szeretnénk egy UTF-8 kódolású string típust írni, akkor is kellemetlen volt a 8k limit (az egyik példa egyébként erről szól).
Mivel jelezzük, hogy sok adatunk lesz?

“SqlUserDefinedTypeAttribute.MaxByteSize field is set to -1, the serialized UDT can be as large as the large object (LOB) size limit (currently 2 GB).”

Csak saját serialization esetén oldották fel a limitet, azaz, ha implementáljuk a System.Data.IBinarySerialize interfészt, és mi pumpáljuk ki és be az adatokat. Natív serialization esetén továbbra is 8k a limit. Persze, ha valaki ilyen nagy típus készít, elég valószínű, hogy lesz benne string is, ahhoz meg úgyse jó a natív serializálás.

Annak ellenére, hogy laza lett a limit, nem érdemes memóriába berántani 120 egyenként 2 gigás sort. Inkább arra jó ez, hogy ha időnként túl kell lépni a 8k-s határt, akkor is működni fog a típusunk.

Could you hire me? Contact me if you like what I’ve done in this article and think I can create value for your company with my skills.