Explain在各大数据库里,是调式SQL的利器。
虽然众所周知,Salesforce底层用的是Oracle。但从来没有开放过调用Explain的方法。
终于,有变化了!
目前作为一个beta特性,Salesforce将Explain放进了REST API。
不过比较蛋疼的是,返回的是json,需要自己处理下。由于是beta特性,所以Salesforce不做任何技术支持。
<?php // Get your token via REST API $token = getToken(); $remote_server = "https://****your instance name****.salesforce.com/services/data/v37.0/query/?explain=*****your soql*****"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $remote_server); curl_setopt($ch, CURLOPT_POST, false); $header[] = "Authorization:Bearer " . $token; curl_setopt($ch, CURLOPT_HTTPHEADER,$header); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($ch); curl_close($ch); echo $data; ?>
// 2016-09-28 Update1
其实在Salesforce Developer Console中早就有这个功能了。。。但是对于分析SOQL的瓶颈还是很有帮助的。