3
我們剛剛安裝了最新的SQL 13驅動程序和最新的sqlsrv和sqlsrv_pdo PHP擴展。連接池似乎沒有工作。連接池不能使用ODBC驅動程序13 for SQL Server for Linux
- OS:CentOS的7.2
- PHP:PHP 7.0.12
- SQL驅動程序:ODBC SQL Server的
摘要測試的司機13:我們創建了一個測試腳本,它會連接到DB。腳本執行後,連接關閉,由DB確認。
ODBCINST.INI:
[ODBC]
Pooling = Yes
[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.1.0
UsageCount=1
CPTimeout=120
測試腳本,其包括一些定時(毫秒):腳本的連續
$startTime = microtime(true);
function printElapsedTimeSinceLastEvent($event=''){
global $startTime;
$elapsed = microtime(true) - $startTime;
echo $event . round($elapsed*1000) ."\n";
$startTime = microtime(true);
}
// Connection sqlsrv driver
$pdo = new PDO ("sqlsrv:server=10.12.12.123;database=aDatabaseName",'coolUser','someAwesomePassword');
printElapsedTimeSinceLastEvent("Connected: ");
$stmt = $pdo->prepare("SELECT TOP 10 * FROM users");
$stmt->execute();
printElapsedTimeSinceLastEvent("Execute: ");
$array = $stmt->fetchAll(PDO::FETCH_ASSOC);
printElapsedTimeSinceLastEvent("Fetch: ");
3個輸出:
Connected: 149
Execute: 109
Fetch: 2
Connected: 149
Execute: 100
Fetch: 2
Connected: 152
Execute: 108
Fetch: 2
使用SQL Studio和運行EXEC sp_who2我們可以看到每次運行後連接都關閉。在Windows上使用sqlsrv確保連接保持打開狀態,並顯示在sp_who2輸出中。
在我們確認連接池確實存在的Windows上,連接池的連接時間明顯更快。