Бортовой журнал Ктулху

Некоторые нюансы при работе с Sybase Adaptive Server Enterprise

При работе с Sybase есть несколько малоизвестных нюансов.

 

Update Statistic

Один из них - необходимость периодического обновления статистики если таблица очень интенсивно наполняется данными. В какой-то момент запрос перестает идти по индексу и все начинает работать через перебор таблицы.

Выполнение обновления статистики вернет нормальную работу.

Можно прочитать подробнее, правда на английском: logicalread.com/keep-sybase-statistics-current-se01/#.XJy6k4gzaHt

Говоря простым языком, обновление статистики выстраивает данные в определенном порядке.

Автоинкремент 

Отвратительная реализация автоинкремента (numeric, ) - в какой-то момент значение прыгает с сотен до сотен миллиардов. Если автоинкремент всего лишь некий внутренний параметр - ничего страшного, но если это номера каких-то строк в таблице, то это неблагоприятно отражается на внешнем виде.

screenshot 2019 03 28 13 59 10

Вот как выглядит кривой инкремент.

screenshot 2019 03 28 14 06 59

В качестве решения можно испльзовать только самописный инкремент который будет работать как max()+1.

Даты

Для выборки по дате в качестве значения можно указать дату в таком формате: Ymd, например 20190328 (28 марта 2019) если тип поля timestamp.

select * from dbo.table where timestamp between '20190101' and '20190103'