|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
Мне нужно сохранять в базе данных определенную строку. В подавляющем большинстве случаев ее длина будет 44 символа (32 байта, закодированные в Base64). Но в очень редких случаях там может быть другое значение, длиною до 200 символов. Могу я просто указать для столбца varchar2(200) и рассчитывать, что Oracle сам с этим разберется? Или лучше сделать два столбца varchar2(44) и varchar2(200)? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 12:16 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
Alibek B. рассчитывать, что Oracle сам с этим разберется? Или хотя бы просто включить мозг и задуматься, а что же могло бы значить "var"? - Неужели "fix"?! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 12:28 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
Я знаю разницу между varchar и char в целом. А конкретно для Oracle внутренний формат хранения мне знать ни разу не потребовалось. Если бы разницы не было, то почему не используют всегда varchar2(4000). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 12:44 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
Alibek B. почему не используют всегда varchar2(4000). Но говно-разработчики, видимо, используют. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 12:46 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
Elic Максимальный размер - это ограничение целостности. Кроме этой причины, она и так понятна. То есть для Oracle нет никакой разницы, какая длина у поля varchar2? Это я и хотел уточнить. В некоторых СУБД если длина строкового поля превышает определенный размер, то его содержимое хранится в отдельной секции данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 13:04 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
Alibek B. Elic Максимальный размер - это ограничение целостности. Alibek B. Это я и хотел уточнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 13:20 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
Alibek B. То есть для Oracle нет никакой разницы, какая длина у поля varchar2? Alibek B. В некоторых СУБД если длина строкового поля превышает определенный размер, то его содержимое хранится в отдельной секции данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 13:27 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
Alibek B. Или лучше сделать два столбца varchar2(44) и varchar2(200)? нет лучше сделать один столбец ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 13:54 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
-2- Если причина была понятна, комментарий "почему не используют всегда varchar2(4000)" неуместен. Я подумал об этой причине, когда задавал вопрос, но про себя сформулировал это иначе — указание длины поля во-первых самодокументирует базу (по ней можно понять, какие данные в ней хранятся) и ограничивает заведомо неправильные данные. Но это как бы декоративные ограничения, их вполне можно заменить на примечания к столбцу и constraint. Задавая вопрос я хотел уточнить, нет ли более глубоких причин, связанных с самой СУБД. Например «Oracle резервирует в секции данных объем, исходя из указанной длины поля, поэтому необоснованное завышение длины поля приводит к неэффективному использованию дискового пространства». -2- Ты продолжаешь изъясняться на гуманитарийском языке и невозможно формально оценить, что именно ты себе уточнил. Корректная терминология подразумевает хорошее знание технической документации. В этом случае у меня бы и вопрос не возник. Я уже понял ответ на свой вопрос. Могу я просто указать для столбца varchar2(200) и рассчитывать, что Oracle сам с этим разберется? правильнее было бы сформулировать как Если я укажу varchar2(200), то Oracle и сам без дополнительных указаний не будет перерасходовать выделяемое для данных место? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 14:09 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
Elic Максимальный размер - это ограничение целостности. Alibek B. То есть для Oracle нет никакой разницы, какая длина у поля varchar2? AFAIK Есть максимальное ограничение на длину индекса. Вот оно считается как сумма всех цифиров в описании полей. Т.ч. сделать все поля varchar2(4000) не получится, тогда нельзя будет использовать составные индексы. p.s. Насколько я помню, в Personal Edition данное ограничение на длину индексов было крайне жестким. В системах которые могли работать на PE специально приходилось длины полей уменьшать по максимому. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 14:51 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Вот оно считается как сумма всех цифиров в описании полей. Т.ч. сделать все поля varchar2(4000) не получится, тогда нельзя будет использовать составные индексы. О, спасибо. Это причина будет более весомой. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 14:54 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
Две первые ссылки в гугле: https://docs.oracle.com/cd/B19306_01/server.102/b14237/limits003.htm#i288032 http://www.dba-oracle.com/t_ora_01450_maximum_key_length_exceeded.htm The maximum allowed index key length depends on your block size. So the minimum allowed size reported in ORA-01450 varies, depending on which block size your index is using: ORA-01450 maximum key length (758) exceeded -> (2K Block) ORA-01450 maximum key length (1578) exceeded -> (4K block) ORA-01450 maximum key length (3218) exceeded -> (8K Block) ORA-01450 maximum key length (6498) exceeded -> (16K Block) See MOSC Note 136158.1 and MOSC Note 236329.1 for more details on the ORA-01450 error and key length. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 15:02 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev httрs://docs.oracle.com/cd/B19306_01/server.102/b14237/limits003.htm#i288032 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 15:14 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 15:15 |
|
Вопрос по размеру строкового поля VARCHAR2
|
|||
---|---|---|---|
#18+
Alibek B. ...Oracle резервирует в секции данных объем, исходя из указанной длины поля... А это что за секция данных такая появилась в Оракле? :() Давайте как положено. Есть блоки, экстенты, сегменты. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2020, 15:02 |
|
|
start [/forum/topic.php?fid=52&msg=39912436&tid=1881653]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 154ms |
0 / 0 |