Страница 1 из 1

Зависимость скорости чтения TPS от доступа

Добавлено: 31 Октябрь 2015, 23:32
Игорь Столяров
Привет всем !

Возник такой вопрос.
Зависит ли скорость чтения из TPS файла от способа доступа к нему ?
Т.е. есть разница как открыть файл Share(TPSFile) или Open(TPSFile,40H) ?
Есть большой файл из которого нужно в 99% случаев только делать выборки.

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

Зависимость скорости чтения TPS от доступа

Добавлено: 01 Ноябрь 2015, 14:00
kreator
Есть ещё всякие операторы FLUSH, BUFFER, STREAM. Но мне кажется всё это фигня. Зависимость больше от операционки. Я бы открывал изначально в режиме single-user, подстраховался бы на всякий случай. Второй юзер принесёт падение скорости однозначно, Винда так работает.

Зависимость скорости чтения TPS от доступа

Добавлено: 01 Ноябрь 2015, 18:23
Губин Игорь
Игорь Столяров писал(а): Гипотетически скорость при доступе на чтение должна увеличиваться, системе ведь не нужно
отслеживать конкуренцию на доступ и захват записей ....
По моему опыту - при открытии файла только на чтение скорость возрастает

Зависимость скорости чтения TPS от доступа

Добавлено: 01 Ноябрь 2015, 19:27
Игорь Столяров
Губин Игорь писал(а): По моему опыту - при открытии файла только на чтение скорость возрастает
Спасибо. Я вроде бы получил положительный результат при записи потоком под транзакцией в TPS файл (500 MByte), если
с других компьютеров по сети он открыт на чтение. При открытии на запись - скорость записи падает.

Зависимость скорости чтения TPS от доступа

Добавлено: 01 Ноябрь 2015, 23:16
gopstop2007
пользуюсь .SetQuickScan(1) на больших объемах скорость чтения существенно заметна

Зависимость скорости чтения TPS от доступа

Добавлено: 01 Ноябрь 2015, 23:21
Игорь Столяров
gopstop2007 писал(а): пользуюсь .SetQuickScan(1) на больших объемах скорость чтения существенно заметна
Возможно. Но к сожалению это оптическая иллюзия. :)
В справке однозначно написано: "The QUICKSCAN driver string is supported by the ASCII, BASIC, and DOS drivers".

Зависимость скорости чтения TPS от доступа

Добавлено: 01 Ноябрь 2015, 23:22
gopstop2007
я про этот

Код: Выделить всё

Relate:Orders.SetQuickScan(1)                     !enable quickscan for primary

Зависимость скорости чтения TPS от доступа

Добавлено: 01 Ноябрь 2015, 23:28
Игорь Столяров
Да, конечно. Если этот вопрос интересен, открой код метода RelationManager.SetQuickScan в файле ABFILE.CLW

Он просто выполняет код:

Код: Выделить всё

    IF SELF.Me.IsOpened()
      SEND(SELF.Me.File,'QUICKSCAN=' & CHOOSE(On = 1,'on','off'))
    END

Зависимость скорости чтения TPS от доступа

Добавлено: 01 Ноябрь 2015, 23:31
gopstop2007
но чего то спидовцы его пихают везде? вот кусок например, подсчет сумм :)

Код: Выделить всё

  SETCURSOR(Cursor:Wait)
  Relate:GrExpenses.SetQuickScan(1)
  SELF.Reset
  IF SELF.UseMRP
     IF SELF.View{PROP:IPRequestCount} = 0
          SELF.View{PROP:IPRequestCount} = 60
     END
  END
  LOOP
    IF SELF.UseMRP
       IF SELF.View{PROP:IPRequestCount} = 0
            SELF.View{PROP:IPRequestCount} = 60
       END
    END
    CASE SELF.Next()
    OF Level:Notify
      BREAK
    OF Level:Fatal
      SETCURSOR()
      RETURN
    END
    SELF.SetQueueRecord
    IF (GRE:OutClient = SETUP:N_OutItems)
      l_SumMinus:Sum += GRE:SumCash
    END
    IF (GRE:InClient = SETUP:N_OutItems)
      l_SumPlus:Sum += GRE:SumCash
    END

Зависимость скорости чтения TPS от доступа

Добавлено: 01 Ноябрь 2015, 23:37
Игорь Столяров
Потому что неизвестно какой файловый драйвер используется. Это универсальный код.
Для TPS драйвера строка с QICKSCAN просто игнорируется. Впрочем как и {PROP:IPRequestCount} (используется в IP Driver).

Зависимость скорости чтения TPS от доступа

Добавлено: 01 Ноябрь 2015, 23:42
gopstop2007
эх Игорь, наломали всю малину :D

Зависимость скорости чтения TPS от доступа

Добавлено: 01 Ноябрь 2015, 23:46
Игорь Столяров
gopstop2007 писал(а): эх Игорь, наломали всю малину
Как раз этим и занимаемся - поиском программных опций, которые реально ускоряют работу с БД.
А что касается кода SV - то там действительно много лишнего, но зато это хороший учебный материал. ;)

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