いくつかの Oracle パフォーマンス テストを実行しようとしています。次のファイルがあります。
orcheck.txt
select * from mf_aj where uid_lo in ('OOO',) or uid_lo in
'OOO'
100回複製してから、それぞれをさらに100回複製したいと思いor uid_lo in (...)
ます。
File.open('orcheck.txt' , 'r') do |f|
i = 0
contents = f.read.gsub("'OOO',") { |m|
m.sub("'OOO',", (m * 1000))
}
theClause = contents[/\((.*)in/]
contents.gsub(theClause, (theClause * 100))
contents.gsub("'OOO',") { |m|
m.sub('OOO', (i += 1).to_s)
}
File.write('orcheck.txt', contents.to_s)
end
最初は問題なく動作し、 1000回.gsub
複製されます。'OOO'
ただし、次の .gsub fortheClause
を int の増加に置き換えると、そう'OOO'
ではありません。誰かが私が間違っている場所を理解するのを手伝ってくれますか?