• Как удалить данные за период и проверить на целостность?

    tsklab
    @tsklab Куратор тега SQL Server
    Здесь отвечаю на вопросы.
    Про удаление написал ScriptKiddo.
    Целостность данных нужно не проверять, а регулировать (ограничивать) внешними ключами. Перед очисткой проверьте, что бы у них были правильно указаны
    ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT }

    Создание связей по внешнему ключу.
    Ответ написан
    Комментировать
  • Как удалить данные за период и проверить на целостность?

    ScriptKiddo
    @ScriptKiddo
    Какими командами сделать трункейт данных и оставить данные за последний год?

    Если есть партиции - удаляете партиции

    https://docs.microsoft.com/ru-ru/sql/t-sql/stateme...

    TRUNCATE TABLE PartitionTable1   
    WITH (PARTITIONS (2, 4, 6 TO 8));  
    GO

    Если партиций нет и данных мало - удалить просто

    DELETE FROM table WHERE date <= %date%

    Если данных много - сделать задачу в SQL Agent. Количество удаляемых строк оставляете на свое усмотрение

    DELETE TOP (1000) FROM table WHERE date <= %date%

    Какими командами проверить на целостьность и оптимизировать?


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

    Если нужно проверить, не битая ли база - то используйте команду DBCC CHECKDB
    https://docs.microsoft.com/ru-ru/sql/t-sql/databas...

    P.S Не помешали бы бекапы и прочее прочее
    Ответ написан
    Комментировать
  • Как получить рабочую категорию Linux (Ubuntu)?

    @antares4045
    os.getcwd() -- это путь до места из которого была отдана команда на запуск скрипта
    что может совсем не совпадать с путём до скрипта
    я обычно юзаю os.path.dirname(__file__) -- ещё ни в одной os меня не подвело
    Ответ написан
    2 комментария
  • Как устроены dns сервера?

    ValdikSS
    @ValdikSS
    1. За одним IP-адресом может быть несколько серверов, на которые распределяются запросы для распределения нагрузки.
    2. Один IP-адрес может глобально маршрутизироватся в разные физические места, в зависимости от региона и/или провайдера. Это называется anycast.
    Ответ написан
    Комментировать
  • Односвязные списки. Удаление элемента?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Только если вам известен ПРЕДЫДУЩИЙ элемент. Иначе за честные О(1) вы из односвязного списка ничего не удалите.

    Можно амортизационно удалить за О(1) просто пометив этот элемент удаленным. Но тогда все функции, которые проходятся по списку, должны такие помеченные элементы действительно удалять во время прохода.

    Суммарное время работы алгоритма будет как если бы удаление было за О(1). Но некоторые отдельные операции могут быть сильно медленнее, чем при честной константе. Например, если вы кучу раз добавите элемент в начало списка и тут же удалите, то потом вывод списка будет медленным, несмотря на то, что список должен быть пустым.

    Но на практике этот метод, наверно, не применяется. Потому что вы же где-то берете указатель на удаляемый элемент. Обычно можно вместе с ним получать и указатель на предыдущий. Или тупо использовать двусвязные списки.
    Ответ написан
    1 комментарий
  • Односвязные списки. Удаление элемента?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Если это не последний элемент, то присваиваем в него значение из следующего, потом удаляем следующий
    Ответ написан
    2 комментария
  • Как правильно восстановить RAID0 на обычном ПК?

    sashkets
    @sashkets
    Прекратил отвечать после 24.02.2022
    посмотрел в свой qnap.

    cat /proc/mdstat
    Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
    md1 : active raid6 sdb3[14](S) sde3[8] sdg3[9] sdh3[7] sda3[10] sdd3[13] sdc3[12] sdf3[11]
    19485317120 blocks super 1.0 level 6, 512k chunk, algorithm 2 [7/7] [UUUUUUU]
    bitmap: 1/15 pages [4KB], 131072KB chunk


    надо linux - какойто live cd
    загружиться с него и проинсталить mdadm
    и пробовать примонтировать массив
    шанс есть
    Ответ написан
    3 комментария
  • Как создать собственный язык разметки для проектирования интерфейсов (С ++)?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Мало языка разметки. Интерфейс - это в основном работа контролов. Их можно отображать (отрисовывать) разными способами (кардинально разными). Можно использовать нативные средства платформы, можно делать платформонезависимые и рисовать везде самостоятельно по своим правилам. GUI - это очень серьезная вещь и очень и очень много кода. Разметка - это чуть ли последняя стадия развития графической библиотеки.

    Создавать очередную разметку существующей библиотеки - дело не благодарное и сомнительное.

    Так что, для начала, всё же, стоит подробнее описать желаемое. Если полностью собственный графический фреймворк, то это один вопрос, а если для существующей библиотеки, то совершенно другой.
    Ответ написан
    2 комментария
  • Как сделать переадресацию всех входящих на мобильном, чтобы номер затем определялся не звонящих, а нашего мобильного?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Это можно сделать с помощью услуги "виртуальная АТС". Подробности уточните в отделе по работе с юридическими лицами Вашего оператора.
    С помощью услуги "переадресация" это сделать невозможно.
    Ответ написан
    Комментировать
  • Как пробросить SIP с помощью iptables между двумя VPN?

    @nApoBo3
    Зачем вам nat между этими сетями? Уберите nat и все заработает. NAT и sip не очень друг друга любят.
    Ответ написан
    6 комментариев
  • Можно ли сделать sysprep на Windows server 2016?

    Делаете бекап.
    Проверяете, что он действительно сделался и с него сможете восстановиться.
    На железном сервере ставите серверную винду (можно при желании даже версию винды повысить), делаете её дополнительным контроллером домена в существующем домене.
    Поднимаете на железном сервере те же службы что и на виртуальном (dhcp, dns и т.п. при необходимости перенастраиваете днс сервера у клиентских машин) и понижаете виртуальный сервер до обычного члена домена. Выключаете виртуальный сервер (можно даже после отключения перезагрузить физический) и проверяете, чтобы всё работало.
    Ответ написан
    3 комментария
  • Можно ли восстановить бекап MBR на GPT?

    @rPman
    hint000 абсолютно прав

    От себя добавлю, для загрузочного раздела в gpt
    * если используется legacy загрузка ( с помощью mbr boot sector), необходимо создать 1мб раздел biosboot (его содержимое заполнит grub автоматически когда будешь делать grub-setup)

    * если используется uefi загрузка, то необходимо создать ~128мб раздел efiboot, формат fat, его заполнит grub-setup автоматически (если текущая загрузка linux совершена с помощью efi меню, важный момент, иначе доступа efimgr к таблице разделов в биосе будет недоступна)

    В обоих случаях раздел /boot не обязателен, если корневая система простая (не размещена на raid, lvm или не зашифрована и прочие сложные конфиги) и отформатирована в известную grub-у файловую систему ext/btrfs/...

    p.s. загрузочные разделы должны располагаться примерно с начала диска, до 2тб, иначе могут быть проблемы, даже у uefi. По этой причине /boot раздел все же создают, чтобы гарантировать что загрузочные файлы не уедут за эту границу

    восстанавливать бакап можно просто развернув tar, при условии что структура файловой системы смонтирована как надо (бывает что создавая бакап в него помещают только корневую систему без /boot /efi и прочего, тогда пофиг)

    после восстановления grub-setup и grub-update обязательны (при работе с cdrom и монтировании корня не в корень, указывай его с помощью --root-directory

    grub-setup (точнее он запускает efibootmgr) обязателен для uefi загрузки, он прописывает ссылку на диск в биосе в меню (спасибо майкрософту за этот геморой в стандарте), для загрузки с флешек (removable devices) это не требуется.

    p.p.s. не забудь поправить /etc/fstab, если разделы там прописаны по uuid, создав новые разделы, им выдаются новые идентификаторы
    Ответ написан
    Комментировать
  • Firefox по истечении ~1часа сьедает всю доступную ОЗУ?

    @rPman
    Опытным путем обнаружил что утечка памяти происходит при открытой панели DevTools.

    при открытой консоли разработчика в лог консоли могут попадать отладочные сообщения с выводом объектов, на каждую такую строчку тратится памяти (т.е. идет копирование объекта) периодически очищай лог консоли (кнопка мусорное ведро сверху) - к сожалению это фича а не баг (иначе нельзя будет по логу смотреть значение объекта на любой момент времени)
    Ответ написан
    Комментировать
  • Почему на windows server 2012 служба жрет столько ресурсов?

    @rPman
    Может тебя брутфорсят, перебирая пароли?
    Ответ написан
    Комментировать
  • Ошибка 709 при установке сетевого принтера?

    Haotik
    @Haotik Автор вопроса
    PHP мидл без фреймворков
    В общем удалось найти решение...
    1. Выставил на хосте галку разрешить виндоус управлять принтером по умолчанию.
    2. Через управление учетными записями виндоус создал дополнительного пользователя который используется по сети (говорю об этом Доступ к диспетчеру учетных данных) в качестве хоста указал имя самого себя
    3. Спорный пункт но тем не менее одно из действий которое привело к решению
    Вырубил в биосе ускорение загрузки (Не связано вроде как но это одни из действий после которого все заработало)
    4. Перезагрузка компьютера.
    Ответ написан
    1 комментарий
  • Как преодолевается потеря мотивации в ИТ?

    ArchitectOfRuin
    @ArchitectOfRuin
    WordPress-энтузиаст, маркетолог, переводчик
    Решается все просто: надо уйти из IT. Возможно, это просто не ваша сфера. Возможно, вы добились бы лучших результатов в другой деятельности, были бы более удовлетворены и более работоспособны. Многие попадают в IT случайно, а потом себя пинают в работе, считая, что по-другому никак. На самом деле спектр профессий не исчерпывается одним лишь IT. Есть личные примеры людей, которые лет 10 трудились в IT, плевались, в какой-то момент все забросили и зареклись сюда возвращаться. И теперь работают в других областях, счастливы, делают то, что им реально нравится, пусть даже с меньшей зарплатой. Потому задумайтесь, так ли вам уж нужна эта IT-индустрия. Оцените свои ощущения. Можно до смерти себя пинать, заставлять, но в итоге прожить не свою жизнь.
    Ответ написан
    3 комментария
  • Почему у меня AMD Ryzen 3970 в 2-3 раза медленее Core i9 10850K?

    @thecove Автор вопроса
    Update Вопрос решен!
    С проблемой за 12 часов секаса удалось разобраться.
    В проекте использовалась самописная либа для ГСЧ на базе mt19937 и человек писавший ее лет 5 назад сделал ее потокобезопасной. Понапихав во все вызовы
    std::lock_guard guard(mMutex);

    Не знаю почему AMD на этих вызовах "отдыхал" дольше чем Intel но факт остается фактом. В два раза больше проц от красных терял времени чем синие. В итоге у синих 100% загрузка проца а у красных около 50.
    Как временное решение ( пока старую либу не переписали ) я в каждый поток добавил свой собственный класс Random на базе стандартного rand() / srand() из C++
    __declspec(thread) Random* random= nullptr;
    это решение на коленке. Но главное причина найдена и точность рассчетов не пострадала
    class Random
    {
    public:
    Random()
    {
     _rand_state = 0;
    }
    void srand(unsigned int const seed)
    {
        _rand_state = seed;
    }
    uint16_t rand()
    {
        _rand_state = _rand_state * 214013 + 2531011;
        return (_rand_state >> 16) & RAND_MAX;
    }
    private:
    uint32_t _rand_state; 
    }


    в итоге результат.
    Вот было:
    4 млн. итераций AMD 32 потока = 4,05 сек. Загрузка CPU 45%
    4 млн. итераций AMD 64 потока = 3,61 сек. Загрузка CPU 47%
    4 млн. итераций Intel 10 потоков = 4,01 сек. Загрузка CPU 75%
    4 млн. итераций Intel 20 потока = 2,61 сек. Загрузка CPU 100%


    после исправлений стало:
    4 млн. итераций AMD 32 потока = 1,25 сек. Загрузка CPU 60% ( 1 поток на физическое ядро )
    4 млн. итераций AMD 64 потока = 0,71 сек. Загрузка CPU 100% ( 1 поток на физическое ядро + HP )
    4 млн. итераций Intel 10 потоков = 2,8 сек. Загрузка CPU 70% ( 1 поток на физическое ядро )
    4 млн. итераций Intel 20 потока = 2,1 сек. Загрузка CPU 100% ( 1 поток на физическое ядро + HP )


    Как видно из нового теста AMD как и предсказывали все известные бенчмарки примерно в 3 раза производительнее чем Intel при полном использовании всех ядер.
    Тесты при загрузке на одно ядро у меня показывали что Intel на 15-20 процентов шустрее чем AMD
    Ответ написан
    Комментировать