ASP NET, NET Framework, MONO, SQL, Visual Studio | Professional Programs | Программист Еремин В.В.
(SiteMap) SQL

Программирование в SQL SERVER

С базами данных в плане администрирования я сталкивался с самого начала своей карьеры, но всерьез в СУБД я впервые окунулся в 1989 году, когда появилась dBase IV. Это был интерактивный интерплетатор реляционной СУБД на языке SQL-89, работавший под MS-DOS. Со временем этот стандарт был расширен до SQL-92 и, наконец, до нынешнего SQL-99. Хотя основа языка SQL осталась прежняя, но со временем в язык добавилось несколько новых конструкций типа Inner Join, Union и др. Впрочем dBase IV быстро отошел и уступил место интерплератору Foxpro и компилятору Clipper - на нем-то я и работал несколько лет приобретя незаменимый опыт проектирования и реализации разных АСУП'ов. По четвертому Clipper'у я даже получил сертификат в Nantucket - только потом потерял его. Clipper вообще оказался очень удачным языком - и поныне в организациях полно программ на нем - к сожалению, они как правило все без исходных текстов и при обслуживании выручают только его декомпиляторы.


На MS SQL я реализовал подавляющее большинство своих проектов. Разделы, посвященных MS SQL-серверу, довольно хаотично разбросаны по моему сайту - может быть когда нибудь я их соберу в один список. Вот навскидку несколько моих заметок с этого сайта за последние несколько лет:



В принципе, SQL - это тяжелая болезнь. Кто заболел ею - тем кажутся нелепыми и ненужными любые другие форматы баз виндузни: файловая система, реестр, WMI, базы MAPI, базы ActiveDirectory, PE-данные EXE-модуля, MSI-базы инсталлера и все остальные структуры тоже. Кажется совершенно естественным выгрузить все данные из этого зоопарка в SQL чтобы бепрепятственно юзать потом эти данные в своих прогах уже из SQL - что и сделано в этих утилитками с открытым исходным кодом.

Я также сделал множество отдельных инструментов для выполнения различных спецопераций SQL, например: SQLBatch, скриптер/синхронизатор SQL-баз, определитель формата рекордсета процедур. Большинство этих инструментов вошли в мою cобственную оболочку для управления SQL-сервером - ScriptManager - менеждер MS SQL сервера - дополнение MS SMS для работы с большими скриптами., которой вы тоже можете попробовать воспользоватся.


В последние годы у меня все больше и больше стало нарастать раздражение в отношении Микрософта, вызванное тем, что соотношение цена/качество у микрософтовских продуктов самое плохое в IT-индустрии. Ну что это за соотношение цена/качество SQL-сервера, если цена MS SQL 2008 составляет $57,498 на процессор, ну пусть даже $24,999 на процессор? И что это за сумма в четверть миллиона долларов? А ведь именно столько набегает для обычного малого предприятия, скажем из 10 человек, с информационно-развитой инфрастуктурой - где стоит скажем три-четыре SQL-сервера на современных многопроцессорных компьютерах. Почему примерно аналогичный MySQL Enterprise стоит всего $500, а PostgreSQL вообще бесплатен? Это очевидно несуразная цена. Слишком большая цена которую мы все должны платить просто для того, чтобы Билл Гейтс оставался самым богатым человеком планеты.

Наличие у микрософта совершенно обкастрированной версии MS SQL, работаюшей на 1-м процеесоре в 1ГБ ОЗУ с базами до 4ГБ - без аудита, без репликации, без компрессии, без материализованных вьюшек, без секционирования, с однопоточным обращением к индексам, без полнотекстового поиска, без мастеров экспорта/импорта данных, без оптимизатора JOIN-соединений, без почтовых уведомлений, без виртуализации, без сборок, без тьюнинг-адвизора, без профайлера - а еще десятки каких-то ограничений... Наличие MS SQLExpress, распространяемой микрософтом бесплатно и являющейся просто приманкой для дураков - маркетинговой уловкой по завлечению малограмотных юзеров на платформу Билла Гейтса - абсолютно ничего не меняет. Ибо даже студенты на лабораторных работах начинают понимать, что это не похоже на полноценный SQL Server. Это 10% возможностей полностью бесплатного MySQL. Проще тогда уж положить данные в последовательной текстовый файл и читать их оттуда самому своим кодом - это будет работать и быстрее и проще.

К тому же MS SQL работает только под Windows, что противоречит логике всех остальных СУБД, которые позволяют приложениям работать на любой платформе . А Windows - самая малораспространенная в природе платформа (даже на оборудовании X86 и X64 - а на оборудовании s390, s390x (32 and 64 bits), SPARC (32), PowerPC, AMD64, IA64, ARM, MIPS Windows не существует в принципе). Даже на популярной платформе X86-X64 лишь 0,4% сайтов сделаны на фирменной микрософтовской платформе. И лишь чуть больше половины ноутбуков используют Windows. действительно, кому вообще придет в голову покупать для домашнего использования за 10 тысяч рублей убогую однопоточную тормозную и подвисающую Windows 7 - когда можно бесплатно скачать нормальный Linux? Сколько бы не навязывали это решение в процессе обучения детей в школе. А кому придет в голову покупать за 4 тысячи долларов более ли менее укомплектованный сервер на Windows? Если можно абсолютно бесплатно скачать для физ-машины гораздо более надежную и быструю VmWare ESXi. А ведь использование MS SQL приводит при последующем расширении бизнеса и расширении IT-инфраструктуры именно к покупке Windows-сервера от Билла Гейста и установке билогейтсовской платформы (Windows 7) на клиентские машины. Все остальные СУБД устроены так, что не заставляют покупать Windows - только MS SQL задуман так, чтобы вовлекать клиента в дальшейшие покупки чего-либо у Билла Гейтса.

Поэтому довольно часто мои друзья, партнеры и заказчики просят освободить их от MS SQL Server хотя бы постепенно, от отдельных компонентов MS SQL Server:

Принимая во внимание изложенные обстоятельства, хотя большинство моих проектов сделаны именно на MS SQL - объективности ради я включил MS SQL в свой перечень продуктов, которые я считаю абсолютным злом - Осторожно Microsoft. Вашему вниманию также предлагается Сравнительный анализ производительности MS SQL Server 2008, PostgreSQL 8.4, MySQL 5.1.


В принципе, если подумать, то даже MySQL (хоть он и не имеет такой производительности как MS SQL Enterprise и тем более PostgreSQL) имеет множество неоспоримых преимуществ перед MS SQL - например задания SQL JOB и репликация в нем работают в бесплатной версии, а у билогейтсовского сервера это платный функционал. В MySQL без проблем можно вызвать из одной процедуры другую, чего почему-то нельзя делать в MS SQL. MySQL позволяет хранить небольшие базы непосредственно в памяти (тип хранения Memory) - что работает несравненно быстрее, чем единственно возможный способ хранения данных в MS SQL - небольшой текущий кэш в ОЗУ, остальное на дисках. Таких преимуществ немало, вплоть до удобных языковых конструкций типа LIMIT, полезных функций типо COMPRESS или полного дампирования базы c содержимым в текстовом виде. Если бы было наоборот - MS SQL Enterprise полностью бесплатный, а кроссплатформенный MySQL стоил бы какие-то деньги - вот тогда надо было бы призадуматься!

Поэтому вы тоже можете воспользоваться My SQL в любых своих проектах на .NET и ASP.NET - Используем MySQL вместо MS SQL в проектах на ASP.NET.



В последнее время (если выбор SQL-сервера зависит от меня) я склоняюсь к применению более мощного чем MS SQL, но бесплатного и кросплатформенного решения - Используем PostgreSQL вместо MS SQL в проектах на .NET и ASP.NET.





Комментарии к этой страничке ( )
ссылка на эту страничку: http://www.vb-net.ru/sql/index.htm
<На главную>  <В раздел ASP>  <В раздел NET>  <В раздел SQL>  <В раздел Разное>  <Написать автору>  < Поблагодарить> <Полезные ссылки