Имя: Пароль:
1C
1C 7.7
v7: Подскажите про корректировку dbeng32.dll
,
0 andrey995
 
14.01.07
15:30
Пробегало на форуме

"самый простой способ включить кэширование записи для всех файлов- отключить вызов FlushFileBuffers(hFile). для этого для платформы 7.70.025 надо пропатчить файлик dbeng32.dll: ищем последовательность "50 FF 15 40 C0 11 1F", заменяем на "B8 FF FF FF FF 90 90". Теперь 1С не будет делать принудительный сброс файловых буферов на диск при каждой записи, т.е. запись на диск будет кэшироваться и сброс файловых буферов будет делаться средствами самой ОС (для NTFS каждые несколько секунд). Значительно уменьшается фрагментация файлов на диске и отпадает необходимость помещать временные файлы на RAM-диск. Этот метод дает очень хорошие результаты для локального и терминального режимов. Использовать это для сетевого режима не рекомендую, т.к. не тестил и вероятно может привести к повреждению базы."

Сделал все как написано, запись в файлы в локальной правда летает (перепроведение и тп)

ВОПРОС - какие опасности с использованием в СЕТЕВОМ режиме, какова природа этих глюков и причины возможного повреждения базы ?
1 Добрый_Злой Лемур
 
14.01.07
15:43
(0)Если внезапно пропадет питание и данные в кэше, то они будут потеряны. Мало того, при этом может быть нарушена целостность базы. Соответственно, чем дольше данные хранятся в кеше, тем выше вероятность повреждения базы. Если будут резервные копии и есть UPS, то, думаю, ничего страшного не будет.
А по поводу RAM-диска - лучше изменить настройки на увеличение кеш-памяти. Эффективность будет выше.
Где ты такой метод вычитал?
2 Добрый_Злой Лемур
 
14.01.07
15:44
Кстати, здесь еще про это написано v8: База данных на RAM-Diske
3 Добрый_Злой Лемур
 
14.01.07
15:46
(2)оттуда ты это и взял, похоже.
4 andrey995
 
14.01.07
15:54
(2), (3) Спасибо,
Да, вычитал про метод именно там, и метод очень понравился
если все дело лишь в пропадании питания - то овчинка стоит имхо выделки (ограничение по стабильности питания сохранится и локальном варианте)

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

спецы по сетям, отзовитесь !!!
5 mszsuz
 
14.01.07
17:36
Проверил патч на перепроведении документов -
- ускорение более чем в два раза!
6 Морозов Александр
 
14.01.07
17:38
нет чтоб кто патчик сделал...
7 mszsuz
 
14.01.07
18:30
Найди на iFolder под номером 867273
8 andrey995
 
15.01.07
00:35
(5) на локальной / сетевой смотрел ? есть ли что добавить про возможные глюки сетевой ?
9 Матрейя
 
15.01.07
00:41
8. никаких глюков... кроме выборки данных из кеша, но маловероятно.
10 Матрейя
 
15.01.07
00:47
+9 то есть неактуальных данных
11 andrey995
 
15.01.07
00:50
(9) всмысле из-за пропадания питания или как ?
"кроме выборки данных из кеша, но маловероятно" - как бы поточнее оценить вероятность ? где можно покопать инфу самому чтобы знать и принять решение ставить на живую базу?
(9), (10) спасибо
12 Матрейя
 
15.01.07
00:52
11. все консультации на www.itpb.ru/forum4
13 romix
 
15.01.07
01:56
(0) Интересный способ, дополнил статью:
Книга знаний: Ускорение 1С:Предприятие 7.7

В сетевом режиме отличий быть не должно.
14 andrey995
 
15.01.07
08:03
Интересно, сложится ли эффект при доп использовании с прогой SuperCache ? или они занимаются одним и тем же ?
15 smaharbA
 
15.01.07
08:09
А в скуль что сбрасывать ? :)
16 smaharbA
 
15.01.07
08:30
17 andrey995
 
15.01.07
08:36
(16) что это там и как работает?
18 Прохожий
 
15.01.07
08:37
(17) Вот это там
*********
<html>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<HTA:APPLICATION
ID="pat"
APPLICATIONNAME="pat"
BORDER="dialog"
BORDERSTYLE="normal"
CAPTION="yes"
ICON="1.ico"
MAXIMIZEBUTTON="no"
MINIMIZEBUTTON="yes"
SHOWINTASKBAR="yes"
SINGLEINSTANCE="no"
SELECTION ="yes"
SYSMENU="yes"
VERSION="1.0"
WINDOWSTATE="normal"
width=200px
scroll=no
contextmenu=no
/>
<script language=vbscript>
call self.resizeTo(500,200)
call self.moveTo(screen.Width/2-250,screen.Height/2-100)

function replaceinfile(file,arr_who,arr_is)
   dim r,r2,ss
   Set fso = CreateObject("Scripting.FileSystemObject")
   fso.GetFile(File).copy File & ".bak",-1
   for each c in arr_who
       r=r & chr(clng("&H" & c))
   next
   for each c in arr_is
       r2=r2 & chr(clng("&H" & c))
   next
   set s=createobject("ADODB.Stream")
   s.type=2
   s.charset="windows-1251"
   s.open
   s.loadfromfile(File)
   ss=s.readtext
   s.position=0
   s.writetext(replace(ss,r,r2))
   s.position=0
   s.type=1
   s.position=0
   ss=s.read
   s.close
   s.open
   s.write(ss)
   call s.savetofile(File,2)
end function

function patch()
   Set fso = CreateObject("Scripting.FileSystemObject")
   set wshshell= CreateObject("WScript.Shell")
   if document.all.key.checked then
       File=document.all.filep.value
       if trim(File)="" then
       elseif (fso.GetFileVersion(File)="7.70.0.26") or (fso.GetFileVersion(File)="7.70.0.25") then
           arr=split("B9B0:33,B9B1:C0,B9B2:40,B9B3:C3,B9B4:90,213C7:C3,2142A:C3,220A5:66,220A6:81,220A7:FB,220A8:0,220A9:3,220AA:75,220AB:2C,220AC:33,220AD:C9,220AE:8B,220AF:D9,220B0:57,220B1:66,220B2:83,220B3:FF,220B4:1F,220B5:77,220B6:16,220B7:E8,220B8:0,220B9:0,220BA:0,220BB:0,220BC:58,220BD:66,220BE:3,220BF:FF,220C0:66,220C1:3,220C2:C7,220C3:5,220C4:FC,220C5:0,220C6:0,220C7:0,220C8:66,220C9:8B,220CA:18,220CB:58,220CC:C3,220CD:58,220CE:66,220CF:81,220D0:FF,220D1:F8,220D2:FF,220D3:74,220D4:11,220D5:49,220D6:49,220D7:C3,220D8:66,220D9:81,220DA:FB,220DB:0,220DC:6,220DD:75,220DE:D,220DF:33,220E0:C9,220E1:B8,220E2:5E,220E3:E3,220E4:0,220E5:0,220E6:BB,220E7:2A,220E8:63,220E9:0,220EA:0,220EB:C3,220EC:66,220ED:81,220EE:FB,220EF:0,220F0:2,220F1:74,220F2:18,220F3:E8,220F5:0,220F6:0,220F7:0,220F8:5E,220F9:81,220FA:C6,220FB:10,220FC:1,220FD:0,220FE:0,220FF:8B,22100:F8,22101:8B,22102:D0,22103:B9,22104:20,22105:0,22106:0,22107:0,22108:F3,22109:A4,2210A:C3,2210B:66,2210C:B,2210D:C9,2210E:75,2210F:1A,22110:66,22111:B,22112:D2,22113:75,22114:15,22115:B8,22116:58,22117:BB,22118:0,2211A:BB,2211B:1F,2211C:E1,2211D:0,2211E:0,2211F:B9,22120:86,22121:7A,22122:0,22123:0,22124:BA,22125:D9,22126:DC,22128:0,22129:C3,2212A:66,2212B:83,2212C:F9,2212D:5,2212E:75,2212F:E,22130:66,22131:83,22132:FA,22133:5,22134:75,22135:8,22136:33,22137:C0,22138:8B,22139:D8,2213A:8B,2213B:C8,2213C:99,2213D:C3,2213E:F,2213F:B7,22140:C0,22141:66,22142:52,22143:66,22144:51,22145:5D,22146:81,22147:F5,22148:66,22149:19,2214A:7,2214B:9,2214C:33,2214D:C9,2214E:8B,2214F:D9,22150:8B,22151:D1,22152:E8,22153:1F,22154:0,22155:0,22156:0,22157:66,22158:53,22159:E8,2215A:18,2215B:0,2215C:0,2215D:0,2215E:66,2215F:53,22160:E8,22161:11,22162:0,22163:0,22164:0,22165:66,22166:53,22167:E8,22168:A,22169:0,2216A:0,2216B:0,2216C:66,2216D:8B,2216E:D3,2216F:66,22170:59,22171:66,22172:5B,22173:66,22174:58,22175:C3,22176:66,22177:BA,22178:10,22179:0,2217A:66,2217B:69,2217C:C0,2217D:89,2217E:19,2217F:66,22180:5,22181:5,22183:66,22184:50,22185:8A,22186:CC,22187:D0,22188:E9,22189:80,2218A:E1,2218B:7,2218C:8A,2218D:E9,2218E:D0,2218F:E1,22190:2,22191:CD,22192:8B,22193:FD,22194:D3,22195:EF,22196:66,22197:8B,22198:CF,22199:FE,2219A:C9,2219B:80,2219C:E1,2219D:7,2219E:80,2219F:CC,221A0:80,221A1:D0,221A2:E9,221A3:73,221A4:2,221A5:F6,221A6:D4,221A7:80,221A8:C1,221A9:5,221AA:D2,221AB:EC,221AC:66,221AD:D1,221AE:D3,221AF:66,221B0:58,221B1:66,221B2:4A,221B3:75,221B4:C5,221B5:86,221B6:DF,221B7:C3,221B8:0,221B9:0,221BA:0,221BB:0,221BC:4D,221BE:64,221BF:0,221C0:0,221C1:0,221C2:1,221C4:7,221C5:0,221C6:12,221C7:0,221C8:1F,221C9:0,221CA:30,221CB:0,221CC:44,221CD:0,221CE:5B,221CF:0,221D0:75,221D2:92,221D3:0,221D4:B3,221D5:0,221D6:D6,221D7:0,221D8:FD,221D9:0,221DA:0,221DB:0,221DC:20,221DD:0,221DE:5F,221E0:FF,221E1:1,221E2:7,221E3:0,221E4:32,221E5:0,221E6:3C,221E7:0,221E8:5,221E9:0,221EA:FF,221EC:FF,221ED:FF,221EE:FF,221EF:FF,221F0:FF,221F1:FF,221F2:FF,221F3:FF,221F4:FF,221F5:FF,221F6:FF,221F7:FF,221F8:FF,221F9:FF,221FA:FF,221FB:FF,221FC:FF,221FD:FF,221FE:FF,221FF:FF,22200:FF,22201:FF,22202:FF,22203:FF,22204:FF,22205:FF,22206:FF,22207:FF,22208:B7,22209:DD,2220A:40,2220B:2F,2220C:D,2220D:52,2220E:14,2220F:46,22210:60,22211:B6,22212:2D,22213:8B,22214:44,22215:50,22216:E2,22217:3F,22218:26,22219:DC,2221A:48,2221B:38,2221C:7F,2221D:BD,2221E:B0,2221F:5B,22220:33,22221:61,22222:F2,22223:A8,22224:72,22225:A2,22226:83,22227:CD,35D5C:FF,35D5D:1,35D5E:2,35D5F:3,35D60:4,35D61:5,35D62:6,35D63:32,35D64:33,35D65:FF,35D66:FF,35D67:1,35D68:2,35D69:3,35D6A:4,35D6B:5,35D6C:6,35D6D:32,35D6E:33,35D6F:FF,35D70:FF,35D71:FF,35D72:FF,37B37:33,37B38:C0,37B39:90,37B3A:90,37B3B:90",",")
           fso.GetFile(File).copy File & ".bak",-1
           set s=createobject("ADODB.Stream")
           ss=""
           s.type=2
           s.charset="windows-1251"
           s.open
           s.loadfromfile(File)
           ss=s.readtext
           for i=0 to ubound(arr)
               ss=left(ss,clng("&H" & split(arr(i),":")(0))) & chr(clng("&H" & split(arr(i),":")(1))) & mid(ss,clng("&H" & split(arr(i),":")(0))+2)
           next
           s.position=0
           s.writetext(ss)
           s.position=0
           s.type=1
           s.position=0
           ss=s.read
           s.close
           s.open
           s.write(ss)
           call s.savetofile(File,2)
       else
           msgbox "Это не 26/25!!! Снимаю только ""загадку""...",4096+16,"Это не 26!!! Снимаю только ""загадку""..."
       end if
       document.all.key.checked=false
   end if
   if document.all.pass.checked then
       File=fso.GetFile(File).parentfolder & "\seven.dll"
       if not fso.FileExists(File) then
           msgbox "Нету файлика ""загадки""!!!...",4096+16,"Нету файлика ""загадки""!!!..."
       else
           arr_who=split("E8 4D F8 FF FF 83 C4 08 85 C0 5F 75 32 8B 54 24 48 50 50 68 02 80 00 00 8B 42"," ")
           arr_is=split("56 57 8B F0 8B F9 B9 20 00 00 00 F3 A4 5F 5E E8 3E F8 FF FF 83 C4 08 5F EB 25"," ")
           call replaceinfile(file,arr_who,arr_is)
       end if
       document.all.pass.checked=false
   end if
   if document.all.MSSQL2005.checked then
       File=fso.getfile(document.all.filep.value).ParentFolder & "\BkEnd.dll"
       msgbox File
       if (trim(File)="") or (fso.fileexists(File)=false) then
       else
           arr_who=split("83,E8,06",",")
           arr_is=split("83,E8,07",",")
           call replaceinfile(file,arr_who,arr_is)
           document.all.MSSQL2005.checked=false
       end if
   end if
   if document.all.DBF.checked then
       File=fso.getfile(document.all.filep.value).ParentFolder & "\dbeng32.dll"
       if (trim(File)="") or (fso.fileexists(File)=false) then
       else
           arr_who=split("50,FF,15,40,C0,11,1F",",")
           arr_is=split("B8,FF,FF,FF,FF,90,90",",")
           call replaceinfile(file,arr_who,arr_is)
           document.all.DBF.checked=false
       end if
   end if
end function
</script>
<style>
body{background-color:gray}
*{font-size: 10pt; font-family: "Arial", "Arial Cyr", "verdana"; margin-top: 5px;}
</style>
<body>
   <input type=file id=filep size=40 /><br>
   <table>
       <tr>
           <td>
               <input type=checkbox alt="замочек..." id=key>замочек...</input>
           </td>
           <td>
               <input type=checkbox alt="загадка..." id=pass>загадка...</input>
           </td>
           <td>
               <input type=checkbox alt="MSSQL2005..." id=MSSQL2005>MSSQL2005...</input>
           </td>
           <td>
               <input type=checkbox alt="Кэшируем файловую..." id=DBF>Кэшируем...</input>
           </td>
       </tr>
       <tr>
           <td>
               <input type=button alt="Старт..." id="start" value="Старт..." onclick='patch()' />
           </td>
       </tr>
       <tr>
           <td id=p1>
           </td>
           <td id=p2>
           </td>
           <td id=p3>
           </td>
       </tr>
   </table>
</body>
</html>
...
Ну и работает соответственно...
19 andrey995
 
15.01.07
08:45
(18) этот код я увидел там, не понятно "загадка" и "замочек" ...
эх-х...
20 ASV
 
15.01.07
09:06
(19) document.all.здесь ключевое слово
21 andrey995
 
15.01.07
09:20
(20) если невозможно здесь написать может быть возможно написать на почту назначение этих пунктов ?
22 andrey995
 
15.01.07
11:06
ап !
23 smaharbA
 
15.01.07
12:16
(22) поэксперементи и поймешь...
24 smaharbA
 
15.01.07
12:20
Кстати на счет "замочка", что только для 25 и 26, "вранье", проверено с 21 до 27...
немного переделать -
if trim(File)="" then
elseif clng(right(fso.GetFileVersion(File),2))>20 AND clng(right(fso.GetFileVersion(File),2))<=27 then