У меня поток данных не очень большой. Я бы начал с того что описал в статье, выселил хистори таблицы в отдельный mdf\mds и на отдельный диск. Если у вас вставок не много то вы не сильно проиграете в скорости. Далее можно исключить их ежедневного\ежечасного инкрементального бэкапа и включить например только в еженедельный фулл бэкап. Тоже можно немного выйграть.
На хистори таблицах можно снять все индексы кроме PK по HistoryItemID и индекса по id сущности (commentID в данном случае). Это еще чуть-чуть ускорит вставку. В данном примере оригинальная таблица comments явно будет иметь индекс по topicID.
У вашего решения есть свои плюсы, но мое отличается тем что логика полностью работает в БД, данные тем самым защищены от взлома или сбоя на уровне приложения.
Это дело вкуса, можно хранить изменения в виде «айди записи — дата — измененное поле — старое значение — новое значение». Вам нужно только переписать под себя триггер\хранимую процедуру и создать свою хистори таблицу.
Основная сложность — вклиниться в linq2sql. Это не так просто, например нельзя создать DataContext на основе своего наследника SqlConnection или своей реализации IDbConnection — получите рантайм эррор. Это первый путь которым я хотел пойти.
Сколько раз покупал телефоны, плееры, ноутбуки себе, друзьям, родителям продавцы говорят одно и тоже: разрядите батарею полностью, потом зарядите и так три раза. Чтобы она «вышла на рабочую емкость». Просто слово в слово.
Как это все соотносится с привычной рекомендацией при покупке нового гаджета «первые три зарядки нужно разрядить батарею до конца и потом зарядить до 100%». Получается мы вот так сходу разрушаем всю сложную кристалическую структуру которую строят инженеры на первых трех циклах?
Рискую кармой, но Денис Попов (автор BolgenOS) по сути является пророком. Он еще год назад писал о «рабочем столе на html». Вот цитата:
«Вы говорите что HTML невозможно программировать. По-моему вы просто жутко наелись конфет…
Этот язык заводится из простого текстового редактора и для его исполнения нужен только веб-браузер, к вашему сведению сидя на Windows я писал в блокноте копию рабочего стола...»
По сути microsoft уже давно к этому идет. XAML на котором предлагают разрабатывать WPF приложения уже «почти html», мысль «верстать» традиционные приложения вместо того чтобы собирать их из компонент представляется мне логичной эволюцией. Подумайте сами сколько времени вы потратили бы чтобы например сделать переключалку табов с картинкой 128х128 в заголовке вместо текста? Если вы делаете web приложение то на html можно сверстать это за 30 секунд.
По поводу отказа от .NET в пользу JavaScript сомневаюсь. Во-первых microsoft потратила очень много сил на то чтобы перевести все продукты под единую .NET платформу и интегрировать между собой (посмотрите хотябы на элегантность Power Shell и на возможность интегрировать .NET функции на c# в SQL сервер). Во вторых microsoft не является ярым сторонником открытых стандартов, а javascript таковым является, да и пальму первенства по производительности уверенно держит гугл.
Скорее всего переход на «html и javascript» будет «переходом на XAML и WPF»
Банковские договоры идеальны с точки зрения буквы закона, над ними работают кучи юристов. Пункт скорее всего был, и скорее всего предупреждали, вопроса незаконности овердрафта или начисления процентов я не поднимал. По умолчанию в данном случае значит что если не сказать «не подключайте овердрафт» то его подключат и в стандартном договоре он будет, могут кстати и не предупредить словами, в договоре есть этого достаточно. В сбере например овердрафт — опция и подключается всегда вторым договором, если он тебе нужен.
Про дезинформацию, там используется, на сколько я помню, более обтекаемая формулировка «доступно ХХХ рублей». В суде они скажут: «вы же сами подписали овердрафт, вот мы вам и пишем с учетом овердрафта, чтобы вам было удобней». Шансы выиграть делать очень малы.
То что вы написали — верно. Осталось только выяснить, что понимается под словом «государственный». На мой взгляд то, что принадлежит государству. Учитывая что у государства контрольный пакет акций можно сказать что сбер принадлежит государству, а значит государственный.
В офисном центре где я работаю стоят в метре друг от друга два сбербанковских банкомата. Как раз на такой случай.
Мне это пригодилось только единожды когда в один из них заправляли деньги, снял со второго. Ни у одного другого банка лично я пока такого резервирования не видел. И очереди меньше.
Да и то что ломается — не правда, у нас ниразу не ломались. Ну или не при мне.
Даже если банкомат сломался то плотность покрытия гарантирует что вы даже ночью за 15 минут дойдете до ближайшего работающего пешком. Приходилось делать когда вечером ехал домой, и опоздал к закрытию торгового центра рядом с домом где часто снимал, а деньги были нужны. Это далеко не в центре Москвы.
Вы так все ополчились на Сбер, но почему-то все равно им все пользуются. Не забывайте что Сбербанк
а) государственный (меньше шансов что он схлопнется одномоментно)
б) самый крупный российский банк
в) самая крупная сеть филиалов
г) самое большое количество банкоматов
По поводу того что «в других банках». Вот вам пример «дружественного интерфейса». У моего отца зарплатная карта в ВТБ24, там на всех картах по умолчанию подключают овердрафт, а при запросе баланса пишут не «у вас на счету 10 000р и вы можете взять в овердрафт 30 000р». а просто «у вас на счету 40 000р». Прошло полгода, отец должен был получить премию, запросил баланс, видит большую сумму, забыл про овердрафт, снял. Вспомнили только еще через полгода, когда стали деньги пропадать уже приличные, оказалось на процентах потеряли несколько тысяч рублей. Вот вам «дружественный интерфейс». Можете топик про него написать.
тут список правил по работе с боевой базой. я не поставил заголовок, но вы могли заключить самостоятельно исходя из того что в п4 я назвал пункты 3 и 4 правилами.
Примерно так и выглядит. Дата контекст использую так:
На хистори таблицах можно снять все индексы кроме PK по HistoryItemID и индекса по id сущности (commentID в данном случае). Это еще чуть-чуть ускорит вставку. В данном примере оригинальная таблица comments явно будет иметь индекс по topicID.
Прощу прощения что долго, пишу раз в 5 минут :-)
Основная сложность — вклиниться в linq2sql. Это не так просто, например нельзя создать DataContext на основе своего наследника SqlConnection или своей реализации IDbConnection — получите рантайм эррор. Это первый путь которым я хотел пойти.
«Вы говорите что HTML невозможно программировать. По-моему вы просто жутко наелись конфет…
Этот язык заводится из простого текстового редактора и для его исполнения нужен только веб-браузер, к вашему сведению сидя на Windows я писал в блокноте копию рабочего стола...»
По сути microsoft уже давно к этому идет. XAML на котором предлагают разрабатывать WPF приложения уже «почти html», мысль «верстать» традиционные приложения вместо того чтобы собирать их из компонент представляется мне логичной эволюцией. Подумайте сами сколько времени вы потратили бы чтобы например сделать переключалку табов с картинкой 128х128 в заголовке вместо текста? Если вы делаете web приложение то на html можно сверстать это за 30 секунд.
По поводу отказа от .NET в пользу JavaScript сомневаюсь. Во-первых microsoft потратила очень много сил на то чтобы перевести все продукты под единую .NET платформу и интегрировать между собой (посмотрите хотябы на элегантность Power Shell и на возможность интегрировать .NET функции на c# в SQL сервер). Во вторых microsoft не является ярым сторонником открытых стандартов, а javascript таковым является, да и пальму первенства по производительности уверенно держит гугл.
Скорее всего переход на «html и javascript» будет «переходом на XAML и WPF»
Про дезинформацию, там используется, на сколько я помню, более обтекаемая формулировка «доступно ХХХ рублей». В суде они скажут: «вы же сами подписали овердрафт, вот мы вам и пишем с учетом овердрафта, чтобы вам было удобней». Шансы выиграть делать очень малы.
Мне это пригодилось только единожды когда в один из них заправляли деньги, снял со второго. Ни у одного другого банка лично я пока такого резервирования не видел. И очереди меньше.
Да и то что ломается — не правда, у нас ниразу не ломались. Ну или не при мне.
Даже если банкомат сломался то плотность покрытия гарантирует что вы даже ночью за 15 минут дойдете до ближайшего работающего пешком. Приходилось делать когда вечером ехал домой, и опоздал к закрытию торгового центра рядом с домом где часто снимал, а деньги были нужны. Это далеко не в центре Москвы.
а) государственный (меньше шансов что он схлопнется одномоментно)
б) самый крупный российский банк
в) самая крупная сеть филиалов
г) самое большое количество банкоматов
По поводу того что «в других банках». Вот вам пример «дружественного интерфейса». У моего отца зарплатная карта в ВТБ24, там на всех картах по умолчанию подключают овердрафт, а при запросе баланса пишут не «у вас на счету 10 000р и вы можете взять в овердрафт 30 000р». а просто «у вас на счету 40 000р». Прошло полгода, отец должен был получить премию, запросил баланс, видит большую сумму, забыл про овердрафт, снял. Вспомнили только еще через полгода, когда стали деньги пропадать уже приличные, оказалось на процентах потеряли несколько тысяч рублей. Вот вам «дружественный интерфейс». Можете топик про него написать.
результат: macfix.ru/macbookssd/