• Каков путь изучения SQL?

    unfilled
    @unfilled
    sql-ex. Не уверен, что это про быстрее, но про очень качественно - сто процентов.
    Ответ написан
    Комментировать
  • Имеет ли смысл разбивать значения свойств товаров по разным таблицам?

    unfilled
    @unfilled
    EAV (entity-attribute-value) и быстродействие - это, в общем случае, понятия прямо противоположные. Например, вы захотите сделать выбор всех товаров со свойством "Вес" и значением свойства 500 грамм - никакие индексы вам не помогут (точнее мало помогут), при достаточно большом количестве товаров и свойств.
    В обоих случаях (всё в одной EAV-таблице, всё в EAV-таблицах по типам данных) у вас возможен мусор в базе, т.к. не будут работать никакие ограничения целостности (FK, CHECK, DEFAULT).
    Если вы всё-таки хотите работать с EAV, можно сделать таблицу Entity|Attribute|Value_str|Value_int|Value_boolean. Какой, кхм, сорт выбирать - имхо, разницы нет.
    Ответ написан
    5 комментариев
  • Как составить sql запрос на замену null на 0?

    unfilled
    @unfilled
    Стандарт предполагает использование COALESCE:
    select COALESCE(price, 0) + COALESCE(price2, 0) + COALESCE(price3,0)  as suma from prices
    Ответ написан
    6 комментариев
  • Какой индекс создать для таблицы?

    unfilled
    @unfilled
    Кластерный индекс лучше объявить уникальным (раз вы пишете, что TTfid уникальное. Оптимизатору всегда лучше предоставлять максимум информации.
    Что касается индексов по конкретным столбцам - нужно видеть, какие конкретно запросы вы хотите оптимизировать. Без этого - гадание на кофейной гуще. Для запроса, где "join идет по полям: TTfid, TPid и TTowner" уникальный кластерный индекс по TTfld - то что доктор прописал.
    Ответ написан
  • SQL Pivot работает неправильно, что я делаю не так?

    unfilled
    @unfilled
    Select ProcedureId, [3_1_explain_alert_system_and_boosters_required], [1_1_patient_blacklist_checked]
    FROM 
    (
        select ProcedureId, HtmlValue, TokenValue from ProcedureStepsDetails
    ) As Temp
    PIVOT
    (
        max([HtmlValue]) 
        FOR [TokenValue] In([3_1_explain_alert_system_and_boosters_required], [1_1_patient_blacklist_checked])
    ) As pt

    а так?
    Ответ написан
    2 комментария
  • PL SQL: почему FIRST VALUE с сортировкой DESC и LAST_VALUE выдают разные значения?

    unfilled
    @unfilled
    Попробуйте так:
    SELECT distinct account_id,
    LAST_VALUE(amount)over(PARTITION BY account_id ORDER BY payment_date  RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) last_payment
    FROM kollecto.payments
    where account_id in (759318,759320,759322,759324)
    order by account_id;

    по-умолчанию там RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW.
    Ответ написан
    Комментировать
  • Выборка максимального почасового значения?

    unfilled
    @unfilled
    что-то типа такого, если я правильно понял. Синтаксис функций работы с датой временем нужно уточнить (с sqlite никогда не сталкивался). Если всегда нужно только за определённые сутки, date(dt) можно убрать из выборки и группировки.

    select date(dt), strftime('%H', dt), max(un)
    from dS
    where dt between datetime('now','localtime','-24 hours') and datetime('now','localtime','-0 hours');--тут нужные сутки
    group by date(dt), strftime('%H', dt)
    Ответ написан
    1 комментарий
  • Как сравнить значение со списком (массивом) с помощью SQL?

    unfilled
    @unfilled
    case
    when your_number in (1, 5, 9, 12, 14, 16, 19, 23, 27, 30, 32, 34) then 1
    when your_number in (3, 6, 8, 10, 13, 17, 21, 24, 25, 29, 33, 36) then 2
    when your_number in (2, 4, 7, 11, 15, 18, 20, 22, 26, 28, 31, 35) then 3
    else null
    end as line_num
    Ответ написан
    Комментировать
  • Как автоматически уменьшать лог транзакций?

    unfilled
    @unfilled
    Вы делаете очень странную вещь - бэкапите логи, потом переводите БД в симпл, ломаете цепочку восстановления и возвращаетесь обратно в полную модель восстановления.
    Вы не сможете нормально воспользоваться своими бэкапами журнала транзакций после перевода в простую модель восстановления.
    Если вы хотите всё-таки использовать полную модель восстановления и иметь возможность восстановления на любой момент времени - делайте резервные копии журнала транзакций чаще и после того, как копия снята делайте DBCC SHRINKFILE без перехода в симпл.
    Если это не помогает - смотрите log_reuse_wait_desc в sys.databases - что именно мешает обрезать файл.
    Не забывайте, что на время приращения журнала транзакций, БД переходит в режим "только для чтения" - формально, конечно, ничего никуда не переходит, просто все операции записи ждут пока ЖТ вырастет.
    Ответ написан
    Комментировать
  • После уменьшения файла лога транзакций, 1с ругается в некоторых операциях?

    unfilled
    @unfilled
    Обрежьте журнал транзакций гигабайт до 5, установите приращение в 1 ГБ и не возвращайте БД в Full - вы всё равно не пользуетесь преимуществами полной модели восстановления. Оставьте в простой.
    Deadlock'и у вас появляются из-за кривого кода 1С (ищите их документацию по причинам возникновения и избавлению от взаимоблокировок - её полно). Почему не возникали раньше? Возможно, потому что после "обрезки" ЖТ и переводе в полную модель восстановления, ЖТ снова начал расти и одна из кривых операций ждала завершения приращения, когда вторая кривая операция начала выполняться. Но это мой хрустальный шар только предполагает, вам и вашим одинэсникам виднее должно быть.
    Ответ написан
    Комментировать
  • Перестроение индексов

    unfilled
    @unfilled
    Вообще, эта штука (перестройка/реорганизиаця индексов) очень сильно переоценена. Пол Рэндал, например, открыто говорит, что трэшхолды (5 и 30% для реорганизации/перестройки) он просто взял из головы, потому что надо было что-то написать.
    Ну и вот ещё хорошее свежее видео.
    Вообще, по существу:
    1. Пока индекс маленький, для его хранения SQL Server использует смешанные экстенты, соответственно, страницы индекса разбросаны по разным экстентам и реорганизация/перестройка никак, по сути, на него и не влияют. С маленькими индексами я вообще не заморачиваюсь.
    2. Смотря что понимать под «деградированностью». В принципе, вкупе с page_count и avg_page_space_used_in_percent, avg_fragmentation_in_percent даёт вполне себе понятную картинку.
    3. Так и выбирается. Если вы видите, что при вставке постоянно происходят page split'ы, то, возможно, имеет смысл сделать fill factor поменьше. Но при этом стоит помнить, что индекс сразу же раздуется в объёме, соответственно, поиск по нему будет осуществляться более медленно.
    Ответ написан
    1 комментарий
  • Мобильные приложения и 152-ФЗ («О защите персональных данных»)?

    unfilled
    @unfilled
    Вы ведь у клиентов паспорт не спрашиваете? Например, я заказываю еду, указываю имя друга, телефон жены и адрес квартиры, которую товарищ снял на сутки. Что из этого является моими персональными данными? Имхо, в указанном случае, можно постараться обойти ФЗ, используя формулировки типа «адрес доставки», «телефон для связи» и «наименование точки доставки». Ну и на случай проверки написать какую-нибудь бумагу, типа всё проверили и выяснили, что персональные данные в мобильном приложении не обрабатываются.
    Конечно, если вы используете полученные данные для рекламы, пишете смс, указанные конкретным людям (а не связанные с конкретным заказом), такое не прокатит.
    Ответ написан
    1 комментарий
  • Вопрос по MS SQL MIRRORING?

    unfilled
    @unfilled
    Ответ написан
    Комментировать
  • Кэширование таблиц

    unfilled
    @unfilled
    Раньше был DBCC PINTALBE, сейчас такого механизма нет (да и PINTABLE особо не рекомендовалось к использованию).
    ИМХО, вы зря не хотите разбираться с запросами и индексами. «Закрепление» таблицы в памяти может вам и не помочь. Например, вы таблицу «закрепили», а пользователь бабахнул запрос с 10 кросс джойнами этой таблицы — в данном случае, вне зависимости от того «закреплена» она или нет, памяти уйдёт намного больше чем предполагалось.
    Плюс, suser_name() никак на кэширование данных не влияет — почему вы считаете, что кэширование не дееспособно?
    Ответ написан
  • Как произвести перенос файловой 1C 8.1 в 1C 8.2 на Postgre?

    unfilled
    @unfilled
    Я бы вам советовал сначала файловую обновить до 8.2.16.368, а потом уже делать выгрузку/загрузку. Или же файловую выгрузить в серверную БД 8.1, а потом уже сервер обновлять, причём, наверное, лучше было бы делать это как минимум в два этапа — через 8.2.13. Слишком многое, имхо, в платформах менялось, чтобы так скакать с версии на версию.
    Ответ написан
    1 комментарий
  • Как бекапить MS SQL 2008 R2 с FILESTREAM. База отдельно, файлы отдельно?

    unfilled
    @unfilled
    Бэкапить основную файловую группу отдельно. Пример есть здесь (там же, в ответе, ссылка на пост где приводится пример восстановления). Только надо будет дополнительно потренироваться в восстановлении.
    Ответ написан
    Комментировать
  • Что почитать экономисту по SQL?

    unfilled
    @unfilled
    Мартин Грубер — Понимание SQL — это понять как SQL-запросы вообще в принципе работают
    sql-ex — это потренироваться
    Дейт, конечно, круто, но, имхо, слишком круто.
    Ответ написан
    Комментировать
  • Какой Android-смартфон купить на замену HTC Legend?

    unfilled
    @unfilled
    Я себе, пару недель назад, на ДР подарил Optimus Sol. В живую он выглядит намного лучше чем на фото. Доволен как слон.
    Экран яркий (но на солнце надо яркость на полную выкручивать). Живет около 2-х дней в режиме — час плейер (подкасты по дороге на работу и с работы), минут 30-40 в день книга, минут 10-20 могу пошпилить во что-нибудь казуальное. Мобильные интернеты включены где-то с 12 до вечера, с 18 до 22-23 wi-fi (твиттер, почтой и IM-ами дома не пользуюсь). На ночь все интернеты выключаю, в режим самолета не перевожу, ибо ночью могут позвонить (сволочи :)).
    Ответ написан
    1 комментарий
  • Как провести миграцию БД c Oracle на MySQL?

    unfilled
    @unfilled
    беглый гуглинг показывает:
    раз и два, но насколько хорошо это работает сказать не могу.
    Ответ написан
  • Кто-нибудь хотел бы поучаствовать в хабравстрече в Омске?

    unfilled
    @unfilled
    А я совсем даже не программист, но было бы интересно)
    Ответ написан