|
|
|
Работа с полем UNIQUEIDENTIFIER (sql server)
|
|||
|---|---|---|---|
|
#18+
Используя CAD ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2006, 16:54 |
|
||
|
Работа с полем UNIQUEIDENTIFIER (sql server)
|
|||
|---|---|---|---|
|
#18+
НедоходящийВ дополнений меня волует то что я писал ранее. что тип UNIQUEIDENTIFIER не понимает. как заставить фокс понимать эту значения как символьные? Что значит не понимает!? Вот DDL таблицы на сервере: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Код: plaintext 1. 2. 3. 4. 5. Поле PK имеет в VFP тип C(36), что вам и говорил ВладимирМ. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2006, 17:43 |
|
||
|
Работа с полем UNIQUEIDENTIFIER (sql server)
|
|||
|---|---|---|---|
|
#18+
Я так понимаю, что Недоходящий имел ввиду использование GUID через CAD. Когда мы получаем данные, то курсоре видим С(36), но при попытке, к примеру, сделать рефреш строки после Inserta в CAD'е получаем сообщение типа: Немогу сконверитровать Charcter в GUID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2006, 18:14 |
|
||
|
Работа с полем UNIQUEIDENTIFIER (sql server)
|
|||
|---|---|---|---|
|
#18+
Hi Aleksey! Лишь несколько небольших замечаний: - Если речь идёт о сверхбольших объёмах, то очевидно нас уже не сможет удовлетворять 4 байтный ID - скорее всего придётся переходить на bigint - а разница между 8 и 16 байтами уже не столь "ошеломляющая". Те-же соображения для таблиц подверженных большому траффику даных - т.е. большой объём вставок и удалений - конечно если не "переиспользовать" Id удаляемых записей. И как развитие темы - системы с репликацией - когда искусственно "сужается" диапазон возможных значений ID - для обеспечения каждому узлу "своего", индивидуального диапазона. - Что касается индексов - далеко не всегда оптимально иметь индексы на поля FK - это очень большая тема, просто для желающих намекну про селективность индекса. Даже для фокса это актуально - и описано в статьях с (под)заголовками Non-Discriminative Indexes (типичный пример - индекс по DELETED() или по логическому полю, или по полю типа "пол") в общем ИНОГДА выгоднее просмотреть всю таблицу целиком, нежели осуществлять доступ через индексный файл. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2006, 00:20 |
|
||
|
Работа с полем UNIQUEIDENTIFIER (sql server)
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Hi Aleksey! Лишь несколько небольших замечаний: - Если речь идёт о сверхбольших объёмах, то очевидно нас уже не сможет удовлетворять 4 байтный ID - скорее всего придётся переходить на bigint - а разница между 8 и 16 байтами уже не столь "ошеломляющая". Я думаю, что INTEGER на долго хватит. Если раз в секунду будете добавлять запись, то хватит на непрерывную работы в течении 68 лет! Igor Korolyov - Что касается индексов - далеко не всегда оптимально иметь индексы на поля FK - это очень большая тема, просто для желающих намекну про селективность индекса. Индекс ВСЕГДА полезен для FK - даже если его селективнасть низкая, то: 1. Оптимизатор запроса просто не будет его использовать. 2. Сегодня индекс не нужен, а завтра.... уже нужен - пусть индекс будет, а оптимизатор решит сам, надо или не надо. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2006, 09:24 |
|
||
|
Работа с полем UNIQUEIDENTIFIER (sql server)
|
|||
|---|---|---|---|
|
#18+
Hi Aleksey! > Я думаю, что INTEGER на долго хватит. Зависит от массы факторов - я лишь привёл наиболее общие проблемы - в частности введение "групп/диапазонов для репликации" - которые в десятки (а иногда и в сотни) раз уменьшают "полезный" диапазон int-поля. > Индекс ВСЕГДА полезен для FK - даже если его селективнасть низкая, то: > 1. Оптимизатор запроса просто не будет его использовать. Хороший конечно не будет - если ему дать всю необходимую информацию для принятия правильного решения, что кстати не всегда выполняется. Но проблема не в этом, а в том что ЛЮБОЙ индекс необходимо поддерживать в актуальном состоянии - т.е. чем больше индексов, тем "тяжелее" все операции изменения данных! С этой точки зрения "лишние индексы" - это зло. > 2. Сегодня индекс не нужен, а завтра.... уже нужен - пусть индекс будет, а > оптимизатор решит сам, надо или не надо. Вопрос о необходимости подобных индексов в "правильных" системах решает DBA (причём часто гораздо позже чем внедрение программы!) или разработчик приложения (если он компетентен в особенностях работы конкретной версии СУБД - т.к. тут очень многое зависит от работы оптимизатора). И тут никаких "rule of dumb" нет и быть не может! Ну разве что СПЕЦИАЛЬНО заложить в систему разнообразные камешки, чтобы задать "на потом" много работы DBA по оптимизации этой системы :) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 02:46 |
|
||
|
Работа с полем UNIQUEIDENTIFIER (sql server)
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Hi Aleksey! Зависит от массы факторов - я лишь привёл наиболее общие проблемы - в частности введение "групп/диапазонов для репликации" - которые в десятки (а иногда и в сотни) раз уменьшают "полезный" диапазон int-поля. Согласен, но я говорю про свой опыт. У меня пока не было потребности в большей размерности поля для PK, чем INTEGER. Igor Korolyov Хороший конечно не будет - если ему дать всю необходимую информацию для принятия правильного решения, что кстати не всегда выполняется. Но проблема не в этом, а в том что ЛЮБОЙ индекс необходимо поддерживать в актуальном состоянии - т.е. чем больше индексов, тем "тяжелее" все операции изменения данных! С этой точки зрения "лишние индексы" - это зло. .... Вопрос о необходимости подобных индексов в "правильных" системах решает DBA (причём часто гораздо позже чем внедрение программы!) или разработчик приложения (если он компетентен в особенностях работы конкретной версии СУБД - т.к. тут очень многое зависит от работы оптимизатора). И тут никаких "rule of dumb" нет и быть не может! Ну разве что СПЕЦИАЛЬНО заложить в систему разнообразные камешки, чтобы задать "на потом" много работы DBA по оптимизации этой системы :) Тоже согласен, но иногда такие DBA встречаются у заказчиков, что.... .. мда.. Но в общем случае, если есть FK, то где-то у нас обязательно встретиться запрос, который будет иметь JOIN между этим FK и соответс. PK. Поэтому, я ВСЕГДА создаю индекс по FK, так как MERGE JOIN мне больше нравится, чем HASH или NESTED LOOP :). А оптимизация чтения, более сложная операция, что записи (обновления). Так что я стараюсь оптимизировать именно чтение. С Уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 09:01 |
|
||
|
|

start [/forum/topic.php?fid=41&gotonew=1&tid=1592018]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
83ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 399ms |

| 0 / 0 |
