0

MSSQL データベースにクエリを実行するたびに遅い PHP ページがあります。データベースに接続するために、最新の PHP と標準の SQL odbc ドライバーを使用しています。ページにアクセスするとSQLプロファイラーがおかしくなり、クエリが表示されます

exec sp_cursorfetch 180150003,2,1,1
go

最終的に前に約240回実行します

exec sp_cursorclose 180150003
go 

発生し、ページが表示されます。

トレース ログのスクリーンショット

これは頭​​痛の原因となるクエリです:

    <?php
    $con = odbc_connect('Hesk','Trace_user','*******');
    $Assets = odbc_exec($con, "SELECT  AssetName,           AssetID From viewAssets ORDER BY [AssetName];");
?>
<table Border ="0"   width="100%">
<tr>
<td style="text-align:right" width="150"><?php echo $hesklang   ['asset']; ?>: <font class="important"></font>
</td>
<td width = "80%"><select name ="asset">
<option value=""></option>
<?php
    while ($row = odbc_fetch_array($Assets))
    {
    echo '<option value="' . $row['AssetID'] . '"' .            (($_SESSION['c_asset'] == $row['AssetID']) ? '              selected="selected"' : '')
    . '>' . $row['AssetName']. '</option>';
    }
    odbc_close($con);
?>
</select></td>
</tr>
</table>

私のコードがこのパフォーマンスの低下をどのように引き起こしているか考えていますか?

4

2 に答える 2

0

接続またはクエリの実行に問題がある時間を測定してみてください 接続に問題がある場合は、MSSQL 名を IP に変更します

$con = odbc_connect('Hesk','Trace_user','*******');

何らかの理由で、Linux ボックスの解決が遅かったのです。

$con = odbc_connect('192.168.10.10','Trace_user','*******');
于 2017-11-28T15:35:29.380 に答える