Pull to refresh
0
0
Send message

На ютубе у Юрия Ткачёва есть очень хорошее обьяснение как оно там внутри работает - "Квантовый компьютер: что это такое и зачем он нужен?"

Смотря что за данные, потому что блокировки, нехватка места под rollback сегмент и прочее.

В oracle используется для join Вероятностный bloom filter

И approx_count_distinct думаю на схожих принципах работает.

Оператор GROUP BY используется вместе с оператором SELECT и требует, чтобы в операторе SELECT использовалась хотя бы одна агрегатная функция

Нет такого требования, по крайней мере в большинстве основных СУБД.

Я так понимаю APPROX_COUNT_DISTINCT в Oracle построен на этом.

Вот много где читал этот совет, что не нужно совсем выключать своп. Но под win 7, 16 gb ram, 256 gb ssd под винду, 512 gb ssd под стим переодически ловил в играх статтеры. Стоило только выключить своп всё становилось ок. Но если запустить android студию + эмулятор + тяжёлую игру, то естественно можно словит вылет игры из-за нехватки памяти. Докупил оперативы до 32, пробовал играться с свопом, всё то же самое. С включенным свопом статтеры есть, хоть и реже, с выключенным статтеров нет. Под Win 10 не экспериментировал.

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

procedure TForm1.RunReplace;
var
  reg :TExRegistry;
  strs, Strings :TStringList;
  i, bufLen :integer;
  sNew, sOld, sPath, sPrinter, Params, CmdLine, Process :string;
  ReplacedCount :integer;
  KeyDataType :integer;
  si: TStartupInfo;
  pi: TProcessInformation;
begin
  Memo1.Clear;
  ReplacedCount := 0;
  reg := TExRegistry.Create;
  strs := TStringList.Create;
  strings := TStringList.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.Access := KEY_ALL_ACCESS;

  sPath := 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports';
  if reg.OpenKey(sPath, false) then
    begin
      //reg.GetKeyNames(strs);
      reg.GetValueNames(strs);
      for i := 0 to strs.Count - 1 do
        begin
          sOld := strs[i];
          sNew := sOld;
          if ReplaceSrv1Str(sNew) then
            begin
              ReplacedCount := ReplacedCount + 1;
              reg.RenameValue(sOld, sNew);
              Memo1.Lines.Add(sPath + ' ' + sNew);
            end;
        end;
      reg.CloseKey;
    end;

  sPath := 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers';
  if reg.OpenKey(sPath, false) then
    begin
      reg.GetKeyNames(strs);
      reg.CloseKey;
      for i := 0 to strs.Count - 1 do
        begin
          sPrinter := strs[i];
          sPath := 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\' + sPrinter;
          if reg.OpenKey(sPath, false) then
            begin
              sOld := reg.ReadString('Port');
              sNew := sOld;
              if ReplaceSrv1Str(sNew) then
                begin
                  ReplacedCount := ReplacedCount + 1;
                  reg.WriteString('Port', sNew);
                  Memo1.Lines.Add(sPath + ' Port = ' + sNew);
                end;
              reg.CloseKey;
              sPath := sPath + '\DsSpooler';
              if reg.OpenKey(sPath, false) then
                begin
                  reg.ReadStringList('portName', strings);
                  if Strings.Count > 0 then sOld := Strings[0] else sOld := '';
                  sNew := sOld;
                  if ReplaceSrv1Str(sNew) then
                    begin
                      ReplacedCount := ReplacedCount + 1;
                      Strings[0] := sNew;
                      reg.WriteStringList('portName', Strings);
                      Memo1.Lines.Add(sPath + ' portName = ' + sNew);
                    end;
                  reg.CloseKey;
                end;
            end;
        end;
    end;
  ZeroMemory(@si, SizeOf(si));
  si.cb := SizeOf(si);
  Process := 'c:\Windows\System32\net.exe';
  Params := 'stop Spooler';
  CmdLine := Format('"%s" %s', [Process, Params]);
  CreateProcess(PChar(Process), PChar(CmdLine) ,nil, nil,false, 0, nil,nil,si,pi);
  WaitForSingleObject(pi.hProcess, INFINITE);
  CloseHandle(pi.hThread);
  CloseHandle(pi.hProcess);

  ZeroMemory(@si, SizeOf(si));
  si.cb := SizeOf(si);
  Process := 'c:\Windows\System32\net.exe';
  Params := 'start spooler';
  CmdLine := Format('"%s" %s', [Process, Params]);
  CreateProcess(PChar(Process), PChar(CmdLine) ,nil, nil,false, 0, nil,nil,si,pi);
  WaitForSingleObject(pi.hProcess, INFINITE);
  CloseHandle(pi.hThread);
  CloseHandle(pi.hProcess);
  Memo1.Lines.Add('Выполнено '+IntToStr(ReplacedCount)+' замен');
end;

Нужен доводчик, как в авто.

Посмотрите "ВСЁ НЕ ТАК С ВАЛВ" от Морфа.

Вроде на Delphi, по крайней мере SDK плагинов была на нём, сам писал плагин меняющий статус на «В игре» опрашивающий Steam.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity