Да, вы можете использовать все, что хотите
foreach ($sql2htmlLists as $key => $value){
}
Но я предлагаю вам использовать правильные переменные. И попытаться сбросить эти переменные в конце цикла, чтобы избежать конфликтов.
Записи заблокируют чтения на SQL Server, если Вам не включили управление версиями строки. Необходимо использовать sp_who2
хранимая процедура и трассировка SQL Profiler. sp_who2
скажет Вам, которых блокируют процессы, который, и профилировщик скажет Вам, чем последний оператор был для процесса блокирования.
Если Вы не возражаете против грязных чтений, можно попытаться поместить (NOLOCK) после имен таблиц в Запросах Select. Компромисс здесь - то, что Вам не гарантируют большинства актуальных данных как ОБНОВЛЕНИЮ, и операторы INSERT, в настоящее время выполняющиеся, проигнорированы.
Обычно это не к большой части удара поезда как большая часть системного чтения намного больше, чем они обновляют/вставляют, но очевидно это зависит от природы Вашего приложения.
Кроме того, взгляните на http://www.sql-server-performance.com/tips/deadlocks_p1.aspx