Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Индекс по первичному ключу в таблице БД / 16 сообщений из 16, страница 1 из 1
14.03.2026, 15:19
    #40143037
Soft54
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
Подскажите пожалуйста когда имеется смысл строить индекс по столбцу, который является первичным ключом в таблице? Особенно для СУБД Sybase SQL Anywhere.
Я, в настоящее время, не строю, но стал сомневаться, особенно для таблиц, которые участвуют в соединениях с друг с другом (вторичный ключ с первичным ключом). Если подумать, то таблица не всегда содержит много строк, например справочные таблицы используемые для заполнения столбцов в другой таблице, поэтому первичный ключ не всегда должен быть проиндексирован самой СУБД по умолчанию
...
Изменено: 14.03.2026, 15:41 - Soft54
Рейтинг: 0 / 0
14.03.2026, 16:38
    #40143038
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
Soft54 [игнорируется] 

В большинстве СУБД если какое-то поле таблицы обозначено как первичный ключ, по нему не только автоматически формируется индекс, но ещё и физически записи упорядочиваются по этому полю. Поэтому отдельно строить ещё один индекс по этому полю смысла нет.
...
Рейтинг: 0 / 0
15.03.2026, 09:19
    #40143045
Soft54
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
Garya [игнорируется] 
Каким образом можно получить информацию о том строит ли конкретная СУБД автоматически ("скрытый от пользователей") индекс по первичному ключу из приложения (не изучая документации по СУБД)? Может быть из системных таблиц (метаданных) это можно узнать?
...
Рейтинг: 0 / 0
15.03.2026, 09:51
    #40143046
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
Soft54 [игнорируется] 

Про PowerBuilder я ответить не могу. Я с ним не работал.
...
Рейтинг: 0 / 0
15.03.2026, 14:32
    #40143048
Green2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
Soft54  15.03.2026, 09:19
[игнорируется]
Garya [игнорируется] 
Каким образом можно получить информацию о том строит ли конкретная СУБД автоматически ("скрытый от пользователей") индекс по первичному ключу из приложения (не изучая документации по СУБД)? Может быть из системных таблиц (метаданных) это можно узнать?
Это из документации по базе данных можно узнать.
Просто точно задайте вопрос, и узнаете.
...
Рейтинг: 0 / 0
16.03.2026, 10:53
    #40143054
NaDivane
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
Garya  14.03.2026, 16:38
[игнорируется]
В большинстве СУБД если какое-то поле таблицы обозначено как первичный ключ, по нему не только автоматически формируется индекс, но ещё и физически записи упорядочиваются по этому полю.
Я не все СУБД "щупал", но пока не встречал СУБД, которые автоматом создает кластерные индексы, подскажите для информации какие СУБД автоматом создают кластерные индексы...
...
Рейтинг: 0 / 0
16.03.2026, 11:17
    #40143055
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
NaDivane  16.03.2026, 10:53
[игнорируется]
Я не все СУБД "щупал", но пока не встречал СУБД, которые автоматом создает кластерные индексы, подскажите для информации какие СУБД автоматом создают кластерные индексы...
Например, MS SQL автоматически создаёт кластерный индекс по полю, которое указано как Primary Key таблицы.
Поскольку данные остальных полей хранятся в иерархической структуре в виде B-дерева, это не приводит к существенному снижению быстродействия при добавлении/удалении или модификации записей таблицы.
...
Изменено: 16.03.2026, 11:20 - Garya
Рейтинг: 0 / 0
16.03.2026, 11:50
    #40143056
NaDivane
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
Soft54  14.03.2026, 15:19
[игнорируется]
но стал сомневаться, особенно для таблиц, которые участвуют в соединениях с друг с другом (вторичный ключ с первичным ключом). Если подумать, то таблица не всегда содержит много строк
ИМХО имеет смысл. Даже если справочная таблица небольшая.
Soft54  14.03.2026, 15:19
[игнорируется]
Особенно для СУБД Sybase SQL Anywhere.
Походу вы старой версией SQL Anywhere пользуетесь. Старые версии не создают индекс по умолчанию на первичные и внешние ключи. Новые версии (могу ошибаться) начиная с 10-ой, точно с 11-ой автоматически создают индекс на первичные и внешние ключи. Рекомендую использовать более новые версии.
...
Рейтинг: 0 / 0
16.03.2026, 12:16
    #40143059
NaDivane
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
Garya  16.03.2026, 11:17
[игнорируется]
Например, MS SQL автоматически создаёт кластерный индекс по полю
Так и знал что это будет ненавистный мною MS SQL ))
Имхо, создавать кластерный индекс по умолчанию, еще тот вариант. Наверное есть смысл если для разработки используешь ORM.
...
Рейтинг: 0 / 0
17.03.2026, 10:47
    #40143072
Soft54
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
Вот что я нашел в документации Sybase SQL Anywhere:

"If a column is already a primary key or foreign key, searches will be fast on this column because SQL Anywhere has facilities to optimize searches on these key columns. Thus, creating an index on a key column is not necessary and generally not recommended. If a column is only part of a key, an index may help."

Спасибо за участие в дискуссии ))
...
Рейтинг: 0 / 0
17.03.2026, 11:10
    #40143074
Soft54
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
NaDivane [игнорируется] 

Вы правы, я пользуюсь версией 5.5 (Sybase SQL Anywhere Database Engine Version 5.5). Причин несколько: 1) У меня есть лицензионный ключ, 2) Версия устойчива к сбоям оборудования, к внезапному выключению электричества без резервного источника, способность самостоятельно восстанавливаться (тут важен личный опыт), 3) У пользователей моей программы она уже установлена, это важно при обновлении, 4) Мне нравиться ее компактность, малый размер, скромные требования к компьютеру. В общем согласен с тем, что уже пара перейти на более позднюю версию, например на восьмую хотя бы!
...
Изменено: 17.03.2026, 11:15 - Soft54
Рейтинг: 0 / 0
20.03.2026, 07:46
    #40143109
NaDivane
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
Soft54  17.03.2026, 11:10
[игнорируется]
Причин несколько: 1)... 2)...
Дополню свой ответ, старый версии такие как 5.5, 6, и др. не создают индекс по первичным и внешним ключам по умолчанию, так же не создают скрытых первичных ключей, но! Данные в этих версиях хранятся в порядке сортировки по первичному ключу (кластерный индекс). У кластерных индексов есть как свои плюсы так и минусы.

Что касается остального, я думаю что:
1. Лицензионный ключ в нынешней ситуации ничего не дает.
2. С отказоустойчивостью тут все отлично. Особенно респект за mirror log, простейший и эффективный механизм.
3. Тут непонятно, вы скорее всего вы имели ввиду обновить ODBC драйвер?
4. Будущие версии не сильно разрослись по нынешним меркам, и по требованиям тоже, но поддержка x64 и полная поддержка UTF в более новых версиях, для меня критично, для кого-то еще важны такие плюшки как встроенный HTTP/HTTPS сервер, JSON, XML...

Если обновляться, то минимум на 11. Улучшенный движок который может задействовать больше ядер. Крутой оптимизатор и куча др. плюшек с простейшим понятным и логичным управлением.
...
Рейтинг: 0 / 0
20.03.2026, 12:48
    #40143111
Soft54
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
NaDivane [игнорируется] 
Благодарю за замечания и советы ))
...
Рейтинг: 0 / 0
20.03.2026, 13:07
    #40143112
Soft54
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
NaDivane [игнорируется] 

Для меня особенно важно если бы клиент мог связаться с СУБД и соединится с базой данных по сети Интернет без дополнительных настроек и программ. Клиент даже для версии 5.5 сам находит сервер по его имени (без указания его IP адреса) в локальной сети, было бы здорово это делать и в сети Интернет хотя бы по белому IP адресу сервера.
...
Рейтинг: 0 / 0
20.03.2026, 13:53
    #40143113
NaDivane
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
ASA (SQL Anywhere) сервер "звенит" на всю сеть, оповещая что работает по такому-то адресу и порту, broadcating, рассылает анонс, поэтому и клиент в пределах данной сети находит сервер без указания Ip или имени сервера.
Soft54  20.03.2026, 13:07
[игнорируется]
NaDivane [игнорируется] Для меня особенно важно если бы клиент мог связаться с СУБД и соединится с базой данных по сети Интернет без дополнительных настроек и программ. Клиент даже для версии 5.5 сам находит сервер по его имени (без указания его IP адреса) в локальной сети, было бы здорово это делать и в сети Интернет хотя бы по белому IP адресу сервера.
Да без проблем.
При наличии белого ip, хоть через порт mapping в лоб к БД, 5 минут делов, и сервер БД во внешке, что крайне не рекомендую.
Лучше по VPN но сложно настраивать со стороны сервера, и чуть у клиента.
Оптимальный и рекомендованный метод, реализованный в новых версиях PB, возможность использовать RESTApi протокол посредством доступа по https. Чуть придется поработать ручками, переписать немного кода. Но плюсы перевешивают затраты.
...
Рейтинг: 0 / 0
21.03.2026, 08:58
    #40143117
Soft54
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индекс по первичному ключу в таблице БД
NaDivane [игнорируется] 

Благодарю за пояснения! Хорошо, что есть несколько решений для соединения с сервером через Интернет ))
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Индекс по первичному ключу в таблице БД / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]