Я не полагаю, что SQL Server имеет встроенную функцию разделения, таким образом, кроме UDF, единственный другой ответ, который я знаю, должен угнать функцию PARSENAME:
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2)
PARSENAME берет строку и разделяет ее на символе точки. Это берет число в качестве своего второго аргумента, и то число определяет который сегмент строки возвратиться (работающий из наоборот).
SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3) --return Hello
Очевидная проблема состоит в том, когда строка уже содержит период. Я все еще думаю с помощью UDF, лучший способ... какие-либо другие предложения?
По-видимому, невозможно выделить более 2 ГБ даже в 64-битном приложении .net, работающем в 64-битной ОС.
Я нахожу это очень разочаровывающим и совершенно не учитывая то, что 64-битные приложения и ОС созданы для. Я имею дело с гигантскими изображениями и хотел бы иметь возможность одновременно работать с необработанными байтами в ОЗУ. Теперь мне нужно реализовать алгоритмы разбиения на страницы, чтобы ограничить фрагменты 2 ГБ.
Привет, Microsoft, как насчет того, чтобы исправить это в следующем выпуске .NET? Да, я сказал исправление. Это потому, что он сломан. Как вы ожидаете, что 64-битные приложения начнут расти, когда вы делаете глупые вещи вроде этого? (Можете ли вы сказать, что я раздражен .) Спасибо за внимание.
http://blogs.msdn.com/joshwil/archive/2005/08/10/450202. aspx
Я думаю, что UnmanagedMemoryStream делает то, что вам нужно. Документ MSDN для UnmanagedMemoryStream
Я думаю, что выделять огромный кусок памяти в среде со сборкой мусора - плохая идея, поскольку большинство сборщиков мусора оптимизированы для небольших и недолговечных объектов. Поэтому использование необработанной памяти, как правило, является лучшим и более производительным решением для очень больших объектов.
Следующие действия [теоретически] (синтаксис C #):
Array.CreateInstance(typeof(int[]), 0L);
Изменить: создать тип с выделенным фиксированным размером массив массивов 1ГБ. Вы можете повторно проиндексировать свойство Item с помощью сдвига.
Возможно, вам придется использовать для этого файлы с отображением памяти, взгляните на функцию MapViewOfFile .