nvarchar (макс.), varchar (макс.), или я должен действительно декодировать строку и поместить его в изображение или блоб или что-то?
У меня есть веб-сервис.Net SOAP, который сохраняет записи в SQL 2 008 дБ. Сервис будет расширенным для принятия изображения, которое (что бы там ни было) также должно войти в DB временно.
Для хранения вещей простыми сервис берет изображение в качестве Основы 64 закодированных строки и должен будет отдать его как base64 закодированная строка позже (другой метод на том же сервисе).
Я первоначально просто собирался использовать nvarchar (макс.), и я уверен, что это работало бы. Но затем я думал, что base64 закодировал средства, это могло использовать varchar (макс.) и использовать меньше пространства памяти. Действительно ли это правильно? Или я должен стиснуть зубы и декодировать текст к двоичному файлу, сохранить его как блоб и затем повторно закодировать его на выходе снова?
Наконец - устройство хранения данных загрузки и производительность вряд ли вызовут проблемы, это - любимый проект и будет низкой загрузкой.
Править: В ответ на вопрос @howiecamp я описал, как я был URL, кодирующим изображение здесь: http://www.flowerchild.org.uk/archive/2010/06/13/base-64-encoding-an-image-to-pass-across-a-web.html
Ну, Base64 - это кодировка ASCII, на самом деле - поэтому определенно нет необходимости в NVARCHAR - и, поскольку это текст, я бы предложил VARCHAR (MAX )
Это чистый текст размером до 2 ГБ (должно быть достаточно), и это строковый тип, поэтому вы можете использовать с ним все строковые функции. NVARCHAR действительно использует вдвое больше памяти - всегда 2 байта на символ - и в этом случае совершенно не нужен.