|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Есть старая таблица с полями text и image. Средняя / максимальная длинна данных: 5 кб / 120 кб. Размер таблицы: 80 ГБ. Server: SQL 2005 Enterprise Какие преемущества / проблемы можно получить пересоздав таблицу с полями varchar(max) и varbinary(max)? ЗЫ: клиентские приложения работают в обоиз вариантах. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 19:08 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Alexander UsКакие преемущества / проблемы можно получить пересоздав таблицу с полями varchar(max) и varbinary(max)?Только польза, никаких недостатков. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 21:11 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 21:13 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
alexeyvg, спасибо. Есть ли ещё преемущества / проблемы? Начиная с SQL2005 MS рекомендует переходить с text на varchar(max), так как text устарел. Но сейчас уже SQL2012 а тип text и ныне остаётся в Sql Server. Я бы хотел перевести существующие таблицы на varchar(max) но для этого нужно чётко представлять как выгоды от такого шага, так и возможные негативные последствия. Есть ли у лого опыт такого переводя для больших( > 10 GB ) таблиц? Как это сказалось на производительности? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2013, 11:49 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Alexander Usalexeyvg, спасибо. Есть ли ещё преемущества / проблемы? Начиная с SQL2005 MS рекомендует переходить с text на varchar(max), так как text устарел. Но сейчас уже SQL2012 а тип text и ныне остаётся в Sql Server. Я бы хотел перевести существующие таблицы на varchar(max) но для этого нужно чётко представлять как выгоды от такого шага, так и возможные негативные последствия. Есть ли у лого опыт такого переводя для больших( > 10 GB ) таблиц? Как это сказалось на производительности? Но сейчас уже SQL2014 а тип text и ныне остаётся в Sql Server. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2013, 12:36 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
идей больше нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 18:38 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Alexander Us, сравните список строковых функций, которые можно использовать с text и c varchar(max). те же LEN() и LEFT() ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 18:47 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Shakill, спасибо. Первое обобщение: - с text не сохдать индексированный вид, - есть различия в использовании некоторых функций len/datalength и.т.д. - с text/image не работают операторы UNION, DESTINCT, EXCEPT Остаётся неясным: - есть ли разница в производительности Кто то может дополнить список? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 19:42 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Alexander Us - есть различия в использовании некоторых функций len/datalength и.т.д.не то что есть различия, а некоторые функции вообще не работают с text, то есть этот тип просто неудобен по сравнению с varchar(max) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 19:46 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Alexander UsКто то может дополнить список? С типом данных varchar(max) не работают инструкции, предназначенные для text: TEXTPTR, READTEXT, WRITETEXT, UPDATETEXT. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 20:08 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 10:38 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Glory, Безусловно, этого достаточно для отказа от типа "текст" в новых разработках. Сейчас же речь больше о том, имеет ли смысл переводить старые таблицы с text на varchar(max) и с image на verbinary(max). И к каким последствиям это может привести. Цитата, на которую Вы ссылаетесь появилась ещё в СКЛ 2005. Но тип "текст" до сих пор не удалён. Возникает вопрос "почему"? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 10:54 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Alexander UsСейчас же речь больше о том, имеет ли смысл переводить старые таблицы с text на varchar(max) и с image на verbinary(max). И к каким последствиям это может привести. К таким же, как и изменения на любой другой тип данных. На сервере это изменение никак не скажется. А ваши серверный код и клиентские приложения придется тестировать. Alexander UsЦитата, на которую Вы ссылаетесь появилась ещё в СКЛ 2005. Но тип "текст" до сих пор не удалён. Возникает вопрос "почему"? Не хотят терять таких, как вы. Иначе вы не купите апгрейд на следующую версию ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 11:00 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
GloryНа сервере это изменение никак не скажется.Сомневаюсь, что никак: При удалении старых данных методом обнуления "update ... set ... = NULL" в столбцах "text" столкнулся с таким эффектом: освобождённое дисковое пространство остаётся "висеть" и может быть снова занято только данными типа "text". Со столбцами "varchar(max)" пока такого эффекта не заметил. Так что в данном контексте изменение скажется положительно. GloryНе хотят терять таких, как вы. Иначе вы не купите апгрейд на следующую версию Чтобы покупали апгрейд на следующую версию было бы разумным опубликовать список различий varchar(max) vs. text, раз уж один тип должен заменить другой. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 11:44 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Alexander UsGloryНа сервере это изменение никак не скажется.Сомневаюсь, что никак: При удалении старых данных методом обнуления "update ... set ... = NULL" в столбцах "text" столкнулся с таким эффектом: освобождённое дисковое пространство остаётся "висеть" и может быть снова занято только данными типа "text". Со столбцами "varchar(max)" пока такого эффекта не заметил. Так что в данном контексте изменение скажется положительно. Автор цитаты наверное не слышал никогда про удаление полей переменной длины. Особенно из середины заполненных страниц данных. Alexander UsЧтобы покупали апгрейд на следующую версию было бы разумным опубликовать список различий varchar(max) vs. text, раз уж один тип должен заменить другой. Если вам _нужно_ менять тип полей, то вам все рано придется все тестировать. И от типа поля это не зависит. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 11:50 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Alexander UsПри удалении старых данных методом обнуления "update ... set ... = NULL" в столбцах "text" столкнулся с таким эффектом: освобождённое дисковое пространство остаётся "висеть" и может быть снова занято только данными типа "text". Со столбцами "varchar(max)" пока такого эффекта не заметил. Репро в студию. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 11:56 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Alexander UsЧтобы покупали апгрейд на следующую версию было бы разумным опубликовать список различий varchar(max) vs. text, раз уж один тип должен заменить другой.вот, например Using Large-Value Data Types ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 11:57 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Гость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" и не смог вернуть освободившееся место системе. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 14:33 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Alexander UsУ меня было так: удалил ("update ... set ... = NULL") старые данные в столбце "text" и не смог вернуть освободившееся место системе. Ну так "я не смог" вовсе не означает, что заявленное вами изменение типа данных поля, как то скажется на сервере. Фрагментация - это обыденное явление ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 14:43 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
GloryНу так "я не смог" вовсе не означает, что заявленное вами изменение типа данных поля, как то скажется на сервере. Фрагментация - это обыденное явление Полагаю, изменение на varchar(max) скажется в положительную сторону. Данная фрагментация описана толко для типов text и image: FIX: TEXT/IMAGE Data Storage Space Not Reclaimed Correctly А судя по названию статьи и способу решения проблемы (перезаливка данных с BCP) явление это не совсем "обыденное". Я бы отнёс перезаливку данных с BCP к категории "крайних" решений. Если Вы в данной ситуации "смогли" без перезаливки данных, поделитесь пожалуйста опытом. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 15:24 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
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Если Вы в данной ситуации "смогли" без перезаливки данных, поделитесь пожалуйста опытом. Сначала вы говорили, что вообще не можете освободить место. Теперь вам уже надо "одной кнопкой" ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 15:29 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
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? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 15:42 |
|
снова varchar(max) vs text
|
|||
---|---|---|---|
#18+
Гость333А какие для этой таблицы были, к примеру, значения опций text in row и large value types out of row? такие: Код: sql 1.
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 17:55 |
|
|
start [/forum/topic.php?fid=46&msg=38412313&tid=1705139]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
131ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 242ms |
0 / 0 |