![]() |
![]() |
|
ЗАЧЕМ используется в Комментариях строка неогран. длины ! | ☑ | ||
---|---|---|---|---|
0
Steelvan
20.01.08
✎
18:52
|
Вот обьясните мне товарищи, зачем используется в комментариях строка неограниченной длины.
Разве 1024 символа переменной строки не достаточно (поэмы пишем)??? Одни минусы(основные): 1) Нельзя использовать в запросах упорядочивание по этому полю(и куча других ограничений в запросах от 1С) 2) При чтении данных (при OBJECTPROPERTY 'TableTextInRowLimit' в off) происходит обращение не только к страницам с данными, но и по указателю к страницам, хранящим эти BLOB данные, что не может не замедлять запросы.(В профайлере сначала не понял, что скуль пытается сделать) |
|||
1
nop
20.01.08
✎
18:54
|
"происходит обращение не только к страницам с данными, но и по указателю к страницам, хранящим эти BLOB данные, что не может не замедлять запросы"
А фирме 1с официально пох на это. Покупайте крутое железо |
|||
2
Steelvan
20.01.08
✎
18:59
|
А сам что думаешь :)
|
|||
3
nop
20.01.08
✎
19:03
|
(2) я всегда считал что в 1с работатют не программисты, а кодеры + полукомпетентные руководители проектов в большом количестве.
У них токо "Аллоды" были не глюкавые, но тормозили круто для 2Д |
|||
4
Steelvan
20.01.08
✎
19:04
|
:)
|
|||
5
КонецЦикла
20.01.08
✎
19:52
|
Нехрен использовать комментарий для упорядочивания и прочего в запросах!
Он не для этого создавался В семерке строки неограниченной длины есть смысл использовать именно для каментов ибо они или хранятся или не хранятся вовсе, что положительно сказывается на объеме БД Мегаспецы, пелять, только обсирать могут... |
|||
6
nop
20.01.08
✎
19:59
|
(5) Вполне можно сортировать по лимитированной строке переменной длинны, а использовать неограниченные строки вообще не есть хорошо.
Так же можно хранить статистику о неограниченных строках, что бы иметь представление о длительности операций с ними. Но 1с это не волнует. |
|||
7
Steelvan
20.01.08
✎
21:31
|
(5) Слушай ты, мегаспец, по твоему храние данные в разных страницах положительно сказывается на размерах БД ?
Комментарии я привел как типичный пример использования. На вскидку: РегистрыСведений.ДанныеНезарегистрированныхКонтрагентов.Ресурсы.НаименованиеКонтрагентаПолное Справочники.Банки.Реквизиты.Адрес Справочники.Банки.Реквизиты.Телефоны Справочники.ХранилищеДополнительнойИнформации.Реквизиты.ИмяФайла Справочники.Организации.Реквизиты.НаименованиеПлательщикаПриПеречисленииНалогов Документы.АккредитивПереданный.Реквизиты.ДокументыКПредъявлению |
|||
8
Steelvan
20.01.08
✎
21:48
|
Предлагаю жить мирно, и если есть конструктивные ответы, то выкладывать.
Всегда открыт к конструктивному диалогу. |
|||
9
DimG
20.01.08
✎
21:52
|
а зачем вапще используется комментарий?
|
|||
10
nop
20.01.08
✎
21:55
|
(8) с лимитированными строками переменной длинны упорядочит?
(9) для ручных операций полезно |
|||
11
PR
20.01.08
✎
21:55
|
для начала автору было бы неплохо научиться не писать в заголовках слова заглавными буквами без нужды.
А строка неограниченной длины лучше потому. что используется комментарий крайне редко, а хранится не в таблице объекта, нагружая ее, а в отдельной таблице. Для тех, кому нужно использовать в запросах эти поля, советую использовать ВЫРАЗИТЬ(Поле КАК СТРОКА(1000)). |
|||
12
Кураж
20.01.08
✎
22:02
|
Забавно... )
(8) Конструктивно, могу сказать следующее: лично мне, никто не запрещает упорядочивать по строкам неограниченной длины, а также делать по ним условия и т.п. |
|||
13
Дядя Васька
20.01.08
✎
22:03
|
только все-таки непонятно, какие могут быть упорядочивания и условия по комментарию...
|
|||
14
Азат
20.01.08
✎
22:05
|
(5) +1000000
|
|||
15
nop
20.01.08
✎
22:06
|
(13) может бухи там делают пометку какую-то
|
|||
16
Азат
20.01.08
✎
22:06
|
Комментарий - это всего лишь флуд пользователя для пользователя... А не полезное поле для дел и т.п.
|
|||
17
nop
20.01.08
✎
22:10
|
(16) это не исключает необходимости упорядочивать.
|
|||
18
Steelvan
20.01.08
✎
22:32
|
(11)
1)Вот именно, что при чтении (при любом обращении к элементу 1С считывает все данные) идет обращение (и чтение, и запись, и блокировка) и по указателю. 2) Тогда уж лучше ВЫРАЗИТЬ(Поле КАК СТРОКА), т.к. убираются не нужные пробелы (12)Существуют некоторые ограничения, например нельзя напрямую ссылаться на столбцы типа ntext, text или image в предложении WHERE. Эти столбцы могут содержаться в предложении WHERE в качестве параметров функции, возвращающей другой тип данных, например ISNULL, SUBSTRING или PATINDEX, либо в выражениях IS NULL, IS NOT NULL или LIKE. (Электронная документация по SQL Server 2005 ) (14)А вас уважаемый, я уже давно за специалиста не считаю... (17)Не обращай на него внимания, почти все его ответы пустозвонство. |
|||
19
nop
20.01.08
✎
22:37
|
(18) меня вот другое волнует... х.ли я делаю на работе в 21:30 в выходной за 40 км от города ? о_О
|
|||
20
Steelvan
20.01.08
✎
22:47
|
(10)Да, это строковый тип nvarchar(твоя длина), по которой можно полоноценно упорядочивать.
|
|||
21
Steelvan
20.01.08
✎
22:49
|
(19)А завтра потребуют без опозданий :) ?
|
|||
22
nop
20.01.08
✎
22:52
|
(21) Надо просить отгул. Думал сегодня халтуру доделать, уже пообещал. Думал дома в 16:00 буду. Меньше думать надо
|
|||
23
nop
20.01.08
✎
22:53
|
Steelvan , токо не уходи спать!! а то скучно
|
|||
24
Steelvan
20.01.08
✎
23:05
|
Думается мне, что и конкатенацией они все отс..., ой... не получится у них ничего :)
|
|||
25
Steelvan
20.01.08
✎
23:05
|
До скольки думать собираешься ?
|
|||
26
nop
20.01.08
✎
23:08
|
(24) ниче не понял про concat и неогр. строки
(25) пока не перестану |
|||
27
Immortal
20.01.08
✎
23:15
|
(0)относительно того что напортачили в 1с - полностью согласен.
з.ы. у себя в конфе урезал до 250 символов. во всех документах и справочниках. Ибо нех. |
|||
28
nop
20.01.08
✎
23:16
|
(27) +1
|
|||
29
Steelvan
20.01.08
✎
23:20
|
(26)А чего не понятого,
Выразить (Номенклатура.Комментарий как строка(100)) + "к" преобразуется в : CAST(_Reference32_Q_000_T_001._Fld541 AS NCHAR(100)) + N'к' f_2 И получается : трампарам к (офигенная конкат.) А на код: Выразить (Номенклатура.Комментарий как строка) + "к" ругается. |
|||
30
nop
20.01.08
✎
23:26
|
(29) т.е. Конкат не катит для бесконечных строк?
|
|||
31
Steelvan
20.01.08
✎
23:27
|
Генератор случайных вопросов ?
|
|||
32
Steelvan
20.01.08
✎
23:27
|
:)
|
|||
33
nop
20.01.08
✎
23:29
|
(31) черт, меня раскусили
|
|||
34
Steelvan
20.01.08
✎
23:30
|
Кончил... тьфу, ЗАкончил бы уже, да спать лег.
|
|||
35
PR
20.01.08
✎
23:32
|
Смысл ВЫРАЗИТЬ(Поле КАК СТРОКА(1000)) имеено в числе 1000.
Если использовать ВЫРАЗИТЬ(Поле КАК СТРОКА), то как была строка неограниченной длины, так и останется. А смысл действа в том, чтобы сделать из строки неограниченной длины строку ограниченной длины. |
|||
36
nop
20.01.08
✎
23:33
|
(34) Да уже кончать скоро... наделюсь. Совещание.
Ещё есть генератор случайных ответов....! коэф попадания 80% |
|||
37
nop
20.01.08
✎
23:34
|
(35) все равно природа "неограниченной" строки не ясна. Все в компе дискретно
|
|||
38
PR
20.01.08
✎
23:40
|
(35) Ну, кому-то не ясна, а у кого-то и высшее образование по этому ;))
|
|||
39
nop
20.01.08
✎
23:43
|
(38) Это не правильная типизация. СтрДлина() хоть вернет что-то от такой строки?
|
|||
40
Steelvan
20.01.08
✎
23:44
|
Думается мне, что смысл сего действа в том, что :
ВЫРАЗИТЬ(Поле КАК СТРОКА(1000)) меняет тип ntext на nchar через CAST(_Reference32_Q_000_T_001._Fld541 AS NCHAR(1000)) f_2 которым вы дальше и оперируете (см 18) а инструкция : ВЫРАЗИТЬ(Поле КАК СТРОКА) так и остается _Reference32_Q_000_T_001._Fld541 f_2 типом ntext P.S. может имеет смысл ВЫРАЗИТЬ(Поле КАК СТРОКА(1024)) |
|||
41
PR
20.01.08
✎
23:45
|
(39) Конечно вернет, двоечник.
СтрДлина возвращает не размерность типа, а размер конкретной строки. |
|||
42
PR
20.01.08
✎
23:46
|
(40) А при чем здесь 1024?
|
|||
43
Steelvan
20.01.08
✎
23:47
|
(38)Так, для справки.
Если значение данных типа ntext, text или image не длиннее, чем строка в Юникоде длиной 4 000 символов, символьная строка длиной 8 000 символов или двоичная строка длиной 8 000 байт соответственно, то на такое значение можно ссылаться в инструкциях SELECT, UPDATE и INSERT точно так же, как и на более короткие типы данных. Например, на столбец типа ntext с коротким значением можно ссылаться в списке выбора инструкции SELECT точно так же, как на столбец nvarchar |
|||
44
nop
20.01.08
✎
23:49
|
(41) и причем здесь двоечник? Будем пипками меряться?
|
|||
45
Steelvan
20.01.08
✎
23:49
|
(42)Получаем максимально возможную длину строки возвращаемую 1С (на всякий случай)
:) |
|||
46
Steelvan
20.01.08
✎
23:49
|
(44)Для задора лучше кофе попей :)
|
|||
47
PR
20.01.08
✎
23:49
|
(43) И что?
Лучше сделать реквизит размерностью 8000 символов, который будет заполняться раз в пятилетку, чем строку неограниченной длины, который будет храниться вообще в другой таблице? |
|||
48
PR
20.01.08
✎
23:52
|
Я спать.
А то и так болею, а с вами сейчас еще до реляционных таблиц и нормальных форм таблиц доберемся. |
|||
49
Terv
20.01.08
✎
23:53
|
хм... тут синенькая надпись вылезла
"Пословица: Один глупый может больше спросить, чем сто умных — ответить." |
|||
50
nop
20.01.08
✎
23:55
|
(49) К чему бы... ?
"По настоящему добродетельному человеку можно всё." :) |
|||
51
Steelvan
20.01.08
✎
23:56
|
(47)Расслабься, чего так взьелся :), просто мне показалось что вам это будет нитересно.
Да не в другой таблице он храниться, а в другой странице в этой таблице: Если параметр text in row не задан, строки типа text, ntext или image хранятся вне строки данных; в строки данных входят только текстовые указатели на значения. Текстовые указатели указывают на корневой узел дерева, состоящего из внутренних указателей, сопоставленный со страницами, из которых состоит строка, где хранятся данные типа text, ntext и image. И еще : Если в строке данных хранятся строки типа BLOB, считывание и запись строк типа text, ntext или image может производиться так же быстро, как считывание и запись символьных и двоичных строк. SQL Server не требуется получать доступ к отдельным страницам для считывания или записи строк типа BLOB. |
|||
52
Steelvan
20.01.08
✎
23:58
|
Использование параметра text in row
В SQL Server 2005 пользователи могут применять параметр таблицы text in row для хранения данных типа text, ntext или image в строке данных. Для включения этого параметра выполните хранимую процедуру sp_tableoption, задав text in row в качестве названия параметра, а в качестве значения — on. Установленный по умолчанию максимальный размер хранящихся в строке данных типа BLOB (большого двоичного объекта), например данных типа text, ntext или image, равен 256 байт, но допустимы значения в диапазоне от 24 до 7 000. Для определения максимального размера, отличного от установленного по умолчанию, задайте в качестве значения целое число из этого диапазона. Строки типа text, ntext или image хранятся в строке данных при выполнении следующих условий: Параметр text in row включен. Длина строки не превышает максимального ограничения символов, указанного в @OptionValue. В строке данных достаточно места. Если в строке данных хранятся строки типа BLOB, считывание и запись строк типа text, ntext или image может производиться так же быстро, как считывание и запись символьных и двоичных строк. SQL Server не требуется получать доступ к отдельным страницам для считывания или записи строк типа BLOB. Если строка типа text, ntext или image превышает максимальное ограничение символов или доступное место в строке, в строке сохраняются указатели. При этом условия для хранения строк типа BLOB в строке остаются действительными: для хранения указателей в строке данных должно быть достаточно места |
|||
53
nop
21.01.08
✎
00:00
|
Вы все страшные СУБДшники
|
|||
54
ado
21.01.08
✎
00:08
|
Мдяяяя, вы еще предложите для картинок делать поля фиксированного размера. И индексировать их.
|
|||
55
Steelvan
21.01.08
✎
00:11
|
(54)В данном случае речь идет о комментарии, а не о Хран, Знач.
|
|||
56
Steelvan
21.01.08
✎
00:12
|
точнее о поле, где вряд ли будешь хранить данные больше 1024 символа.
|
|||
57
nop
21.01.08
✎
00:13
|
(56) а если писать на иврите, то и 512 хватит. Там гласных букв нету
|
|||
58
kumena
21.01.08
✎
00:19
|
(0) этот вопрос нужно задать здесь http://partners.v8.1c.ru/forum/index.jsp
|
|||
59
nop
21.01.08
✎
00:20
|
(58) а не пошлют?
|
|||
60
ado
21.01.08
✎
00:26
|
(59) То есть подсознательно ты понимаешь, что вопрос тупой? ;-)
|
|||
61
nop
21.01.08
✎
00:28
|
(60) не тупой, но пошлют
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |