Oracle10g на Линухе - быстрее всех!

User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

Dmitry67 wrote:1 Я не согласен
Действительно, хранить unicode в базе когда это реально не нужно - расточительство


Не совсем.
Никогда не знаешь что когда понадобится :)
Например Oracle при charset AL32UTF8 (Unicode 3.2) на каждый символ отводит столько байт сколько надо - если с клиента приходит ASCII символ под него будет отведен ровно 1 байт, если приходит к примеру ß - два байта - китайский иероглиф - три байта, спец символ - 4 байта. Microsoft работает в кодировке (Unicode) USC-2 где под каждый символ отводится или два или четыре байта.
User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

Dmitry67 wrote:3 Опять. Клиента НАДО писать на UNICODE


Интересно почему это надо - если база в Unicode :pain1:
Притом мы уже выяснили Unicode разный бывает.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Причины по которым базу на MS SQL не нужно переводить на unicode 'просто так' сводятся к следующему

1. Падение скорости до двух раз изза увеличеияобъема базы
2. Ограичение row size (за исключением полей типа TEXT) в 9 с небольшим K
3. Ограничение row size индекса (то есть мак суммы длин всех индексируемых полей) в 900 с чем то байт

По поводу второго замечания не понял
Если база в Unicode, то как не unicode клиент покажет текст в общем случае ?
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Я не могу назвать себя специалистом в области UNICODE - всю свою сознательную жизнь провел в SBCS. Но вот ссылочку на эту тему - как обстояли и обстоят дела в DB2 могу предложить:

http://www.idug.org/idug/member/journal ... icle06.cfm

может быть не самая лучшая, но по крайней мере мне ясно что уже с конца 80-х в DB2 поддерживался DBCS - предтеча и ныне частный случай UNICODE, а в версии 8 все в DB2 на UNICODE переведено - не только пользовательские данные, но и системные данные в том числе.

Приведенная ссылка - только часть первая, второй пока нет. Смотрите следующий номер на:

http://www.idug.org
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Dmitry67 wrote:..........
1 Я не согласен
Действительно, хранить unicode в базе когда это реально не нужно - расточительство
Во всех остальных случаях должен быть UNICODE
Пишущий сейчас неunicode клиента подобен пишущему под Win16

............



Dmitry67, для Вас в ссылке, приведенной мною выше, читайте о двух мифах, связанных c UNICODE.
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

Dmitry67 wrote:Причины по которым базу на MS SQL не нужно переводить на unicode 'просто так' сводятся к следующему

1. Падение скорости до двух раз изза увеличеияобъема базы
2. Ограичение row size (за исключением полей типа TEXT) в 9 с небольшим K
3. Ограничение row size индекса (то есть мак суммы длин всех индексируемых полей) в 900 с чем то байт

По поводу второго замечания не понял
Если база в Unicode, то как не unicode клиент покажет текст в общем случае ?


Вы хотите сказать, Дима, что SQL Server использует UCS-2, который (если я правильно понял) все прогрессивное компьютерное сообщество отвергло?
User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

Dmitry67 wrote:По поводу второго замечания не понял
Если база в Unicode, то как не unicode клиент покажет текст в общем случае ?


V obshem sluchae ne znaju. Da i kakie tut mogut byt' obshie sluchai ?
Kazhdyj provider chto-to svoe delaet. Dlia Oracle eto ne sostavljaet problem, esli ukazana NLS_LANG peremennaja s kodirovko klienta, proizoidet avtomaticheskaja konvertacija (A esli kodirovka klienta "strict subset" Unicode, napr. ASCII, EBCDIC to i perekodirovki ne budet). Konechno budut nakladnye rashody.
Grubo govoria esli klient ASCII - baza AL32UTF8 - nakladnyh rashodov 0. Esli klient ISO8859-1|15 poluchaem nekotorye nakladnye rashody dlia simvolov > 127. Zato baza polnostju internacional'na.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

zVlad wrote:
Dmitry67 wrote:Причины по которым базу на MS SQL не нужно переводить на unicode 'просто так' сводятся к следующему

1. Падение скорости до двух раз изза увеличеияобъема базы
2. Ограичение row size (за исключением полей типа TEXT) в 9 с небольшим K
3. Ограничение row size индекса (то есть мак суммы длин всех индексируемых полей) в 900 с чем то байт

По поводу второго замечания не понял
Если база в Unicode, то как не unicode клиент покажет текст в общем случае ?


Вы хотите сказать, Дима, что SQL Server использует UCS-2, который (если я правильно понял) все прогрессивное компьютерное сообщество отвергло?


А Вы хотете сказать zVlad, что DB2 Использует EBCDIC, которое все прогрессивное человечество отвергло уже давно ? :) Это шютка

Я пытался найти как хранится UNICODE на сервере
Явно - нигде не написано
Но везде написано типа max длина varchar 8000, nvarchar 4000
Так что ответ напрашивается
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
JustMax
Уже с Приветом
Posts: 1476
Joined: 05 Dec 2000 10:01
Location: Vilnius -> Bonn

Post by JustMax »

Кстати вопрос к Тенгизу (Если он тут :)) :
Как там с глобализацией в Юконе будет ? По сравнению с 2000 - ым или с Oracle.
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

JustMax wrote:Как там с глобализацией в Юконе будет ? По сравнению с 2000 - ым или с Oracle.

Так как глобализация/локализация касается меня по касательной, то я не в курсе этих отличий Yukon от SQL Server 8.0 за исключением пары вещей: добавлена поддержка для четырёхбайтных китайских MBCS символов (что нужна для какой-то важной сертификации) и XML data type, поддерживающий хранение в UCS-2/UTF-8/UTF-16. Хоть для storage engine это абсолютно всё равно (любые данные SE рассматриваются как массивы байт), хранение NCHAR/NVARCHAR/NTEXT в таблицах в самом быстром для доступа варианте - UCS-2. CHAR/VARCHAR/TEXT MBCS хранится компактно, но, соответственно, строковые функции с такими данными работают медленнее.
Cheers
User avatar
WildVlad
Уже с Приветом
Posts: 3982
Joined: 13 Jul 2000 09:01
Location: SVX -> BOS -> BUR -> SJC

Post by WildVlad »

tengiz wrote:
JustMax wrote:Как там с глобализацией в Юконе будет ? По сравнению с 2000 - ым или с Oracle.

Так как глобализация/локализация касается меня по касательной, то я не в курсе этих отличий Yukon от SQL Server 8.0 за исключением пары вещей: добавлена поддержка для четырёхбайтных китайских MBCS символов (что нужна для какой-то важной сертификации) ...


4-х байтне китайские символы - это надо понимать GB-18030 support. Нужён для сертификации правительством PRC (People Republik of China) для того, чтобы продукт мог продаваться на территории КНР.

Кстати, DB2 8.1 сертифицирована :mrgreen:
I hated LA

Return to “Вопросы и новости IT”