Блог

Производительность временных таблиц у SQL Server

У меня на работе ETL скрипты - это просто SQL файлы, которые мы запускаем на сервере в определенном порядке. Все работало прекрасно, пока один скрипт не начал тормозить капитально. Общая скорость работы скрипта стала превышать лимит в 3 часа. 

Я запустил скрипт пошагово и он выглядел вполне нормально. Вначале создается таблица:

declare @promotions table (PromotionID int, Здесь есть еще колонки);

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

История игровых консолей

Лара Крофт

Продолжаем экскурс в историю компьютерного мира и игровых приставок. Сегодня мы будем больше разглядывать картинки старинных приставок и старых игровых автоматов. Но начнем мы не с такой уж и старенькой Ларой Крофт.

Нужно ли делать мобильные версии сайтов?

На блоге Лебедева прочитал, что он не понимает, почему люди делают мобильные версии сайтов. Смартфоны вроде бы как могут отображать полноценные сайты нормально и не фиг тратить деньги и усилия на мобильный дизайн.  

Вот тут я очень сильно удивлен. Мне казалось, что Лебедев как никто другой понимает основное назначение дизайна - удобство использования. Дизайн должен быть красивым, но самое главное в нем это как раз пользователь. На мобильном телефоне можно открывать полноценные сайты и они будут работать, но пользоваться ими неудобно. Чтобы что-то прочитать, придется приближать каждую отдельную часть и придется скроилить в две стороны, не только вверх-вниз, но и вправо-влево. Один (а возможно и самый) дорогой дизайнер этого не понимает? Это пугает.

Тех поддержка из Индии

Сегодня в очередной раз ругался на техническую поддержку Индии и ее огромной компании TCS. Они админят сервера у моего клиента и неделю назад на одном из серверов начал выделываться диск. Он просто отказался выделять SQL серверу еще места. Точнее физически файл увеличивался, когда я его вручную пытался увеличить, но SQL сервер не видел увеличения.   

Шикарные парни из TCS долго не признавали косяк, потому что ОС показывает, что свободно 800 гигабайт, а больше 600 реально выделить не удается. Пол дня ушло на то, чтобы они признали проблему и их решение было - создать новый диск и переместить данные  туда.   

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

Индексы на таблицу

У меня в команде есть один супер программист, который просто создает таблицы, и думает, что они магическим образом будут работать. Только что на сервере увидел очередной его шедевр:

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,
)

Лучшие части книги

Глядя на размер варианта книги The Good Parts создаетяс впечатление, что в полном варианте книги слишком много фуфла. Книгу не читал, но на мой взгляд маркетинковый ход немного неудачный. Хотя, если таких как я, кто напишет про книгу будет много, то ход может быть удачным, ведь теперь хочется прочитать  книгу и  узнать. Уверен, что она хорошая в полном варианте, потому что это издательство плохое не публикует.

Обработка очередей

Продолжаю читать просто отличные статьи о высоких нагрузках в журнале Хакер и сегодня прочитал про принцип очередей для отложенной обработки данных. Все написанное в статье абсолютно верно. Я уже говорил, что сайт моего клиента очень большой и сложный, поэтому конечно же мы сталкиваемся с необходимостью отложенной обработки и сегодня я хочу показать, как можно делать очереди.  

Допустим, что нужно отправить пользователю письмо, но крупные сайты создают тысячи писем в час и отсылать их на каждый запрос будет убийством сервера и времени. Пользователь не хочет ждать, когда мы реально соединимся с SMTP сервером и отправим ему или кому-то еще письмо, для него важнее сразу получить ответ от сервера. Вот именно это мы и делаем.  

Когда нужно отправить письмо, то мы только сохраняем в базе маркер, что пользователь хочет что-то отправить и тут же отвечаем ему, что мы все поняли и все сервера Америки уже работают над доставкой сообщения.

События за неделю

Я публикую заметки и фотографии на разных сайтах и по этому вопросу ходят разные мнения. Кто-то хочет, чтобы я выкладывал все в одном месте, а кто-то хочет, чтобы здесь было только про программирования и ничего больше. У каждого свои вкусы и люди хотят видеть разное, но всем угодить невозможно. 

Объединять блоги я не буду, пусть их остается несколько и пусть они будут тематическими. Просто здесь буду иногда показывать самое интересное, например, лучшее недели со всех сайтов и блогов, где я что-то выложил. 

Самое интересное этой недели для многих будет дом, который мы купили. Дом покажу через месяц, а пока только комната моего сына. Полная заметка здесь, а фотография комнаты: 

История компьютеров в картинках

Продолжаем погружаться в историю компьютерного мира. Первую часть смотрите здесь: история игровых приставок в картинках.

Начнем с очень старенькой клавиатуры и дискет:

Очень старый компьютер

Зарплаты в Канаде

Поступил вопрос про зарплаты в Канаде. Вилка очень большая - от 35 тысяч долларов до 100 тысяч. Не в месяц, а в год. Здесь все зарплаты указывают в годовом исчислении, наверно потому, что так звучит круче. 

Как видите разброс просто огромный и все зависит от опыта и умения. Если уметь просто создавать сайты, то это 35. Все, что касается e-commerce, это уже сразу же от 60 и выше даже для программистов начального уровня. При хороших знаниях и умениях (Senior позиции) это уже от 70 и выше. Разница между ступенями примерно 10 тысяч баксов. 

Но звание и зарплата далеко не всегда совпадают. Бывает, что senior получает столько же, сколько technical architect и наоборот. Я был team lead в своей компании и получал меньше, чем сейчас. Хотя я наверно и получил нынешнюю зарплату только потому, что отказался от лидерства и чуть не уволился. 80 - 100 тысяч это уже руководящие должности в хороших компаниях. 

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне