PDA

View Full Version : سوال: مشكل سرعت در اتصال به SQLServer با PDO



MohammadReza.OmidAllah
شنبه 05 اسفند 1391, 08:02 صبح
سلام يه جا مجبور شدم به sqlserver يه سرور خانگي با دستورات PDO وصل بشم ولي توي اين اتصال سرعتم فوق العاده كند ميشه مثلا در حالت لوكال خوبه ها ولي برنامه اصلي روي سرور لودش هر درخواست بين 2تا 3 سانيه متوسطش طول ميكشه:ناراحت:

<?php
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


</head>

<body>


<?php
function persian_sql_to_php($str){
if(mb_detect_encoding($str) == 'UTF-8' AND mb_check_encoding($str, 'UTF-8')){
$str = utf8_decode($str);
}
$str = iconv('Windows-1256', 'UTF-8', $str);
return $str;
}

function persian_php_to_sql($str){
$str = iconv('UTF-8', 'Windows-1256', $str);
return $str;
}

try {
$hostname = "127.0.0.1"; //host
$dbname = "dbname"; //db name
$username = "sgd"; // username like 'sa'
$pw = "6545415"; // password for the user

$dbh = new PDO ("dblib:host=$hostname;dbname=$dbname","$username","$pw");
if($dbh){echo "ok";}
} catch (PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . "\n";
exit;
}
$stmt = $dbh->prepare("Select code,OnlinePass,isonline from UserList where code=1 and OnlinePass=1 and isonline=1");
$stmt->execute();
while ($row = $stmt->fetch()) {
print_r(persian_sql_to_php($row['Name']).'<br/>');
}
unset($dbh); unset($stmt);
?>



</body>
</html>
<?php
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 4);
echo 'Page generated in '.$total_time.' seconds.';
?>


براي رفع اين مشكل از پروسيجر كه استفاده ميكنم توي لوكال بدك نيست ولي روي سرور بازهم اعصاب خورد كنه ميشه . فكرنكنم مشكل سرعت اينترنتم باشه 2 مگابيت سرعت نتم هست و حجم اطلاعاتي كه فراخواني ميكنم شايد چند ركورد بيشتر نشه


$stmt = $dbh->prepare("EXEC sp_AdminLogin @myUser = N'1', @myPass = N'1';");
$stmt->execute();

ممنون ميشم اگه راه حلي يا نظري داريد راهنمايي كنين .

MohammadReza.OmidAllah
یک شنبه 06 اسفند 1391, 02:10 صبح
آقای کرامتی تشریف ندارین ؟