Страница 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
эх Игорь, наломали всю малину

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