Оптимизация заполнения локальной базы данных WebSQL

Я пытаюсь оптимизировать скорость заполнения моей локальной базы данных в разрабатываемом веб-приложении. В настоящее время он использует PHP для доступа к базе данных, а затем вставляет эти данные в локальную базу данных, используя Javascript.

Проблема в том, что все, кроме пары записей, замедляет его, и я почти уверен, что он выполняет отдельный SQL-запрос для КАЖДОЙ строки. Я читал о транзакциях (коммиты и откаты, а что нет), и это похоже на ответ, но я не совсем уверен, как реализовать это или даже где.

Вот пример одной из функций, которая загружает конкретную таблицу.

<code>function ploadcostcodes()
{
$IPAddress = '';
$User = '';
$Password = '';
$Database = '';
$Company  = '';
$No='';
$Name='';
ploadSQLConnection($IPAddress,$User,$Password,$Database,$Company);
</code>

// Это подключается к фактической базе данных, откуда поступает информация.

<code>$Login = 'XXXXXXX';
$conn=mssql_connect($IPAddress,$Login,$Password);
 if (!$conn )
{
      die( print_r('Unable to connect to server', true));
}
 mssql_select_db($Database, $conn);

 $indent="        ";

$sql="SELECT Cost_Code_No as No, Description as Name, Unit_of_Measure FROM v_md_allowed_user_cost_codes WHERE Company_No = " . $Company . " and User_No = '" . $User . "'";

 $rs=mssql_query($sql);
 if (!$rs)
 {
   exit("No Data Found");
 }

 while ($row = mssql_fetch_array($rs))
 {
     $No = addslashes($row['No']);
     $Name = addslashes($row['Name']);
     $Name = str_replace("'",'`',$Name);
     $Unit = addslashes($row['Unit_of_Measure']);

  //THIS IS WHERE I SEE THE PROBLEM

     echo $indent."exeSQL(\"INSERT INTO Cost_Codes (Cost_Code_No,Name,Unit_of_Measure) VALUES('".$No."','".$Name."','".$Unit."')\",\"Loading Cost Codes...\"); \r\n";
 }
 mssql_free_result($rs);
 mssql_close($conn);
 return 0;
}
</code>

Я не знаю, для чего нужна транзакция (или даже если это то, что нужно сделать). Существует MSSQL для доступа к данным, SQLite для их вставки и Javascript, который выполняет код PHP.

Ответы на вопрос(1)

Ваш ответ на вопрос