У меня в команде есть один супер программист, который просто создает таблицы, и думает, что они магическим образом будут работать. Только что на сервере увидел очередной его шедевр:
CREATE TABLE [dbo].[TxnData]( [TxnDataID] [bigint] IDENTITY(1,1) primary key, [TxnID] [bigint] NOT NULL, [Name] [varchar](50) NOT NULL, [Value] [varchar](255) NOT NULL, )
Из таблицы следует, что таблица должна хранить данные о транзакциях. Для каждой транзакции Txn может быть создано несколько каких-то дополнительных записей с какой-то дополнительной информацией.
Какая тут потенциальная проблема? Сразу говорю, что SQL выше - это все, что было запущено на сервере.
У теблицы есть только один индекс по первичному ключу. Вполне очевидно, что код будет искать записи по полю TxnID, а индекса нет и сервер просто умрет, когда база вырастит.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Индусы детектед
Работает - не трогай
А вообще странно, как можно не создать очевидный индекс... Хорошо, что их можно потом добавлять, а то совсем печально было бы: база наполняется, производительность падает, а изменить ничего нельзя
Не знаю как в MSSQL, но например, в PostgreSql индекс автоматически создается по внешнему ключу, может он из этого следовал:).
Внешний ключ создан не был. У нас вообще почему-то не часто их создают.
SQL не Python, всё стерпит. А разве у вас в команде не действуют какие нибудь определённые соглашения, ну хотя бы по томуже форматированию, коллективной читабельности ради.
К сожалению нет, но и проблем с этим нет, потому что все пишут примерно одинаково. В основном новые просто подстраиваются под уже существующий стиль
Привет, Михаил.
Я сам начинающий не опытный разработчик. ты уж пожалуйста не ругай человека, а просто объясни как надо правильно делать.
P.S.: спасибо за книгу "Transact-SQL В подлиннике", которую вы выложили в он-лайн бесплатно. Постоянно пользуюсь.
Индексы надо иногда создавать по полям, по которым планируется проводить поиск.
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.