我正在表A和表B之间进行查找操作(在SSIS中)。以下是两个表的示例:
//$post_thumbnail = Image::make($request->file('slika'));
// $post_thumbnail->backup();
$post_thumbnail = $request->file('slika');
$filename = time() . '.' . $post_thumbnail->getClientOriginalExtension();
Image::make($post_thumbnail)->backup();
ini_set('memory_limit', '256M');
// $filename=Image::make($post_thumbnail);
我正在执行查找,将两个“ BID”都加入,从表B中获取TABLE A (
AID
BID
C
)
TABLE B(
BID
D
E
)
和D
。E
是一个整数。
但是,由于表A有超过150000条记录,因此处理它要花费大量时间,大约需要10到15分钟。我已经在表B中创建了BID索引,但是它没有帮助:
BID
任何线索,我还能做些什么?
谢谢
答案 0 :(得分:1)
在对大量数据执行查找时,最好使用SQL连接而不是使用查找。尝试使用从SQL命令读取的OLEDB源,在其中使用 <?php
$sitedown=$_SERVER['DOCUMENT_ROOT'] . "/sitedown.php";
if (file_exists($sitedown)) {
require_once($sitedown);
exit;
}
require_once("session/use_memcache_sessions.inc");
require_once("session/authorization.inc");
require_once("router.inc");
require_once("template/pagelayout.inc");
session_start();
begin_page_template($_SESSION['user_prefs']);
if (is_authorized($_SERVER['PHP_SELF'], $_SESSION['user_groups'])) {
route_request($_SERVER['PHP_SELF']);
} else {
show_unauth_message();
}
end_page_template();
查询。
还要确保Join操作中包含的所有字段都已编入索引。
有关更多信息,请参考:
答案 1 :(得分:0)
您可以尝试包括要查找的列值:
var urlParams = new URLSearchParams(window.location.search);
$.get('{% url "line_chart_json" %}'+"?"+urlParams, function(data) {
var ctx = $("#myChart").get(0).getContext("2d");
new Chart(ctx, {
type: 'line',
data: data,
});
});
但是,您的问题可能是正在处理的行数-因此您的查询生成了很多数据。如果您仅从CREATE INDEX tableb_bid_d_e ON [dbo].TableB(BID, D, E)
中选择了少数几行,则索引将大大加快查询的速度。如果要选择所有行-那么,需要处理大量数据。