If we look at the following query, we can see one WITH (NOLOCK)SELECT dbo.gen.loan_num, dbo.gen.borrow_ln, dbo.gen.site_id, dbo.gen.loan_amt, dbo.fun.funded, dbo.doc.drawn, dbo.doc.drawn_by, dbo.programs.prog_name, dbo.programs.short_desc, dbo.programs.long_desc, dbo.defaults.regionFROM dbo.gen WITH (NOLOCK) INNER JOIN dbo.fun ON dbo.gen.file_id = dbo.fun.file_id INNER JOIN dbo.doc ON dbo.gen.file_id = dbo.doc.file_id INNER JOIN dbo.programs ON dbo.gen.programs_id = dbo.programs.programs_id LEFT OUTER JOIN dbo.defaults ON dbo.gen.site_id = dbo.defaults.site_id
I have been advised that we need actually more WITH (NOLOCK) statements. This question is because we do "real time" reporting against our OLTP environment.SELECT dbo.gen.loan_num, dbo.gen.borrow_ln, dbo.gen.site_id, dbo.gen.loan_amt, dbo.fun.funded, dbo.doc.drawn, dbo.doc.drawn_by, dbo.programs.prog_name, dbo.programs.short_desc, dbo.programs.long_desc, dbo.defaults.regionFROM dbo.gen WITH (NOLOCK) INNER JOIN dbo.fun WITH (NOLOCK) ON dbo.gen.file_id = dbo.fun.file_id INNER JOIN dbo.doc WITH (NOLOCK) ON dbo.gen.file_id = dbo.doc.file_id INNER JOIN dbo.programs WITH (NOLOCK) ON dbo.gen.programs_id = dbo.programs.programs_id LEFT OUTER JOIN dbo.defaults WITH (NOLOCK) ON dbo.gen.site_id = dbo.defaults.site_id
What are the arguments for and against this?Thanks,Kent