powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / снова varchar(max) vs text
23 сообщений из 23, страница 1 из 1
снова varchar(max) vs text
    #38410350
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть старая таблица с полями text и image.

Средняя / максимальная длинна данных: 5 кб / 120 кб.
Размер таблицы: 80 ГБ.
Server: SQL 2005 Enterprise

Какие преемущества / проблемы можно получить пересоздав таблицу с полями varchar(max) и varbinary(max)?

ЗЫ: клиентские приложения работают в обоиз вариантах.
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38410455
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander UsКакие преемущества / проблемы можно получить пересоздав таблицу с полями varchar(max) и varbinary(max)?Только польза, никаких недостатков.
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38410459
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgAlexander UsКакие преемущества / проблемы можно получить пересоздав таблицу с полями varchar(max) и varbinary(max)?Только польза, никаких недостатков.Например http://www.sql.ru/forum/1048061/indexed-view-pole-ntext-preobrazuetsya-v-nvarchar-256-no-sql-etogo-ne-zamechaet
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38410620
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg, спасибо.


Есть ли ещё преемущества / проблемы?

Начиная с SQL2005 MS рекомендует переходить с text на varchar(max), так как text устарел.
Но сейчас уже SQL2012 а тип text и ныне остаётся в Sql Server.

Я бы хотел перевести существующие таблицы на varchar(max) но для этого нужно чётко представлять как выгоды от такого шага, так и возможные негативные последствия.

Есть ли у лого опыт такого переводя для больших( > 10 GB ) таблиц?
Как это сказалось на производительности?
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38410634
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Usalexeyvg, спасибо.


Есть ли ещё преемущества / проблемы?

Начиная с SQL2005 MS рекомендует переходить с text на varchar(max), так как text устарел.
Но сейчас уже SQL2012 а тип text и ныне остаётся в Sql Server.

Я бы хотел перевести существующие таблицы на varchar(max) но для этого нужно чётко представлять как выгоды от такого шага, так и возможные негативные последствия.

Есть ли у лого опыт такого переводя для больших( > 10 GB ) таблиц?
Как это сказалось на производительности?

Но сейчас уже SQL2014 а тип text и ныне остаётся в Sql Server.
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38412241
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
идей больше нет?
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38412256
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Us,

сравните список строковых функций, которые можно использовать с text и c varchar(max). те же LEN() и LEFT()
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38412296
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shakill,
спасибо.

Первое обобщение:
- с text не сохдать индексированный вид,
- есть различия в использовании некоторых функций len/datalength и.т.д.
- с text/image не работают операторы UNION, DESTINCT, EXCEPT

Остаётся неясным:
- есть ли разница в производительности


Кто то может дополнить список?
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38412300
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander Us - есть различия в использовании некоторых функций len/datalength и.т.д.не то что есть различия, а некоторые функции вообще не работают с text, то есть этот тип просто неудобен по сравнению с varchar(max)
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38412313
Гость333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander UsКто то может дополнить список?
С типом данных varchar(max) не работают инструкции, предназначенные для text: TEXTPTR, READTEXT, WRITETEXT, UPDATETEXT.
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38412662
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander UsКто то может дополнить список?
This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use varchar(max), nvarchar(max) and varbinary(max) data types instead.

По-моему этого более чем достаточно для отказа от text
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38412688
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glory,

Безусловно, этого достаточно для отказа от типа "текст" в новых разработках.
Сейчас же речь больше о том, имеет ли смысл переводить старые таблицы с text на varchar(max) и с image на verbinary(max).
И к каким последствиям это может привести.

Цитата, на которую Вы ссылаетесь появилась ещё в СКЛ 2005.
Но тип "текст" до сих пор не удалён.
Возникает вопрос "почему"?
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38412702
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander UsСейчас же речь больше о том, имеет ли смысл переводить старые таблицы с text на varchar(max) и с image на verbinary(max).
И к каким последствиям это может привести.
К таким же, как и изменения на любой другой тип данных.
На сервере это изменение никак не скажется. А ваши серверный код и клиентские приложения придется тестировать.

Alexander UsЦитата, на которую Вы ссылаетесь появилась ещё в СКЛ 2005.
Но тип "текст" до сих пор не удалён.
Возникает вопрос "почему"?
Не хотят терять таких, как вы. Иначе вы не купите апгрейд на следующую версию
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38412787
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GloryНа сервере это изменение никак не скажется.Сомневаюсь, что никак:

При удалении старых данных методом обнуления "update ... set ... = NULL" в столбцах "text" столкнулся с таким эффектом: освобождённое дисковое пространство остаётся "висеть" и может быть снова занято только данными типа "text".
Со столбцами "varchar(max)" пока такого эффекта не заметил.
Так что в данном контексте изменение скажется положительно.

GloryНе хотят терять таких, как вы. Иначе вы не купите апгрейд на следующую версию
Чтобы покупали апгрейд на следующую версию было бы разумным опубликовать список различий varchar(max) vs. text,
раз уж один тип должен заменить другой.
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38412799
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander UsGloryНа сервере это изменение никак не скажется.Сомневаюсь, что никак:

При удалении старых данных методом обнуления "update ... set ... = NULL" в столбцах "text" столкнулся с таким эффектом: освобождённое дисковое пространство остаётся "висеть" и может быть снова занято только данными типа "text".
Со столбцами "varchar(max)" пока такого эффекта не заметил.
Так что в данном контексте изменение скажется положительно.
Автор цитаты наверное не слышал никогда про удаление полей переменной длины. Особенно из середины заполненных страниц данных.

Alexander UsЧтобы покупали апгрейд на следующую версию было бы разумным опубликовать список различий varchar(max) vs. text,
раз уж один тип должен заменить другой.
Если вам _нужно_ менять тип полей, то вам все рано придется все тестировать. И от типа поля это не зависит.
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38412808
Гость333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander UsПри удалении старых данных методом обнуления "update ... set ... = NULL" в столбцах "text" столкнулся с таким эффектом: освобождённое дисковое пространство остаётся "висеть" и может быть снова занято только данными типа "text".
Со столбцами "varchar(max)" пока такого эффекта не заметил.
Репро в студию.
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38412811
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander UsЧтобы покупали апгрейд на следующую версию было бы разумным опубликовать список различий varchar(max) vs. text, раз уж один тип должен заменить другой.вот, например Using Large-Value Data Types
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38413122
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость333Репро в студию.Извините, если немного тыкаю пальцем в небо: сейчас некогда создать репро...

Кажется, данный/похожий случай был описан здесь:
DBCC SHRINKFILE and SHRINKDATABASE commands may not work because of sparsely populated text, ntext, or image columns

и здесь:
Reclaiming deleted but unused LOB space in SQL 2005

У меня было так: удалил ("update ... set ... = NULL") старые данные в столбце "text" и не смог вернуть освободившееся место системе.
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38413136
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander UsУ меня было так: удалил ("update ... set ... = NULL") старые данные в столбце "text" и не смог вернуть освободившееся место системе.
Ну так "я не смог" вовсе не означает, что заявленное вами изменение типа данных поля, как то скажется на сервере. Фрагментация - это обыденное явление
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38413204
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GloryНу так "я не смог" вовсе не означает, что заявленное вами изменение типа данных поля, как то скажется на сервере. Фрагментация - это обыденное явление
Полагаю, изменение на varchar(max) скажется в положительную сторону.
Данная фрагментация описана толко для типов text и image: FIX: TEXT/IMAGE Data Storage Space Not Reclaimed Correctly

А судя по названию статьи и способу решения проблемы (перезаливка данных с BCP) явление это не совсем "обыденное".
Я бы отнёс перезаливку данных с BCP к категории "крайних" решений.

Если Вы в данной ситуации "смогли" без перезаливки данных,
поделитесь пожалуйста опытом.
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38413210
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander UsПолагаю, изменение на varchar(max) скажется в положительную сторону.
Вы меняете ради замены ? Или для того, чтобы скучно не было ?

Alexander UsДанная фрагментация описана толко для типов text и image: FIX: TEXT/IMAGE Data Storage Space Not Reclaimed Correctly
А вы это видели ?
APPLIES TO
Microsoft SQL Server 7.0 Standard Edition

Alexander UsЕсли Вы в данной ситуации "смогли" без перезаливки данных,
поделитесь пожалуйста опытом.
Сначала вы говорили, что вообще не можете освободить место. Теперь вам уже надо "одной кнопкой"
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38413231
Гость333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander UsКажется, данный/похожий случай был описан здесь:
DBCC SHRINKFILE and SHRINKDATABASE commands may not work because of sparsely populated text, ntext, or image columns
support.microsoft.comAPPLIES TO
•Microsoft SQL Server 2000 Standard Edition
•Microsoft SQL Server 7.0 Standard Edition
Как-то старовато :)

Alexander Usи здесь:
Reclaiming deleted but unused LOB space in SQL 2005
Но по этой ссылке вроде не говорится "замените эти типы данных на varchar(max), nvarchar(max) и varbinary(max), и всё будет в шоколаде"? (особо не вчитывался, т.к. "многабукф" :)

Alexander UsУ меня было так: удалил ("update ... set ... = NULL") старые данные в столбце "text" и не смог вернуть освободившееся место системе.
Охотно верю!
А потом создали точно такую же таблицу, но с типом varchar(max) вместо text, сделали такой же апдейт, и место освободилось?
А какие для этой таблицы были, к примеру, значения опций text in row и large value types out of row?
...
Рейтинг: 0 / 0
снова varchar(max) vs text
    #38413432
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость333А какие для этой таблицы были, к примеру, значения опций text in row и large value types out of row?
такие:
Код: sql
1.
SELECT [name] AS tablename, large_value_types_out_of_row FROM sys.tables -- =>  0 


Код: sql
1.
select OBJECTPROPERTY(object_id('......'),'TableTextInRowLimit')  -- => 0
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / снова varchar(max) vs text
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]