Microsoft SQL Server — система управления реляционными базами данных (СУРБД).
В моих проектах нередко необходимость использование этого продукта назревала постепенно, по мере роста бизнеса клиентов, начинавших автоматизироваться на MS Access, который позволял автоматизировать работу малых и средних предприятий быстро.
MS Access дает удобную возможность перейти от файл-серверной технологии к клиент-серверной эволюционным путем, т.е. не меняя клиентскую часть.
Сам MS SQL рождался также постепенно. Сначала при активнейшем участии компаний Sybase, Ashton-Tate и IBM . В 1988 году появилась первая версия этого продукта под операционной системой OS/2.
Простой, но впечатляющий слайд с просторов интернета
В 1993 году согласно опубликованным результатам тестирования по показателям стоимость/производительность SQL Server оказался самым эффективным сервером из присутствовавших на том момент. Т.е., конечно, были серверы более производительные, но ПО+аппаратное обеспечение обходились заказчикам непропорционально дороже. Этот факт внес напряжение в совместную разработку Microsoft & Sybase, которое логично завершилось объявлением о прекращении совместной разработки SQL Server в 1994 году к неудовольствию клиентов этого продукта.
Чтобы не потерять клиентов Microsoft совершила подвиг, мотивировав работать свою группу разработчиков чуть ли не круглосуточно. MS SQL Server 6.5 был успешно выпущен в 1995 году.
На текущий момент (конец 2018 года) наибольшее количество наработок сделано мной на – MS SQL 2012.
Напишу здесь, какие техники оптимизации запросов БД я применял для решения бизнес задач.
В большинстве случаев оптимизация начиналась и заканчивалась на 2 пункте (см. ниже), так как даже для того, чтобы поставить индекс на таблицу, нужно пройти 10 кругов ада и архитектурных согласований. Если давали в полное распоряжение витрину, то доходило до 6 пункта. Если давали бюджет на аппаратное обеспечение, был и 7 пункт.
Из наиболее ярких успехов в оптимизации запросов: в одной компании, только прибегая к семантической оптимизации, удавалось сократить время генерации отчета с 14 часов до 30 минут.
Фактически я только менял текст хранимых процедур. Не могу сказать, что все было написано плохо. В процессе оптимизации наткнулся на фрагмент кода, рассчитывавшего себестоимость по FIFO. Сначала не понял, как это работает. Разбирался с относительно небольшим скриптом не меньше часа. А когда понял, был чрезвычайно восхищен остроумием этого алгоритма. Притом, что в целом код формирования отчета был изначально не оптимален, расчет FIFO был написан талантливым программистом.