Salesforce也有Explain了

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的瓶颈还是很有帮助的。

Salesforce中一条数据占多大存储空间

如果把Salesforce视为一个数据库的话,它与其他牌子的数据库不大一样。
按理说,不同的表因为字段数量不同,字段多的应该比字段少的占用空间要多。

但是Salesforce却无视字段数量,就是说字段数量不会影响到占用空间。
大多数情况,每条数据占用空间为2KB
但是还有例外

Leads — 2KB
Contacts — 2KB
Accounts — 2KB
Person Accounts – 4KB
Opportunities — 2KB
Forecasts — 2KB
Events — 2KB
Tasks — 2KB
Cases — 2KB
Case Team Member – 2KB
Solutions — 2KB
Notes — 2KB
Custom Reports — 2KB
Campaigns – 8KB
Campaign Members – 1KB
Contracts – 2KB
Google Docs – 2KB
Quotes – 2KB
Tags: unique tags – 2KB
Custom Objects – 2KB
Quote Template Rich Text Data – 2KB
Articles – 4KB

所以在进行存储空间估算的时候要注意例外的SObject。

目前已安装的插件

  1. CloudFlare | 1.3.24版本 | 由Ian Pye, Jerome Chen, James Greene, Simon Moore, David Fritsch, John Wineman (CloudFlare Team)创建

    我使用了CloudFlare的DNS加速服务,所以在WP里嵌入了这枚官方的插件。提供了一些可有可无的功能。
  2. CloudFlare Flexible SSL | 1.2.2版本 | 由iControlWP创建

    由于使用了CloudFlare的SSL,所以导致WP开始疯狂的重定向,所以使用这枚插件来解开重定向的死循环。
  3. Disable Google Fonts | 1.2版本 | 由Milan Dinić创建
    由于你懂的原因,google相关的域名都访问不了。好死不死的,WP的Core和主题都使用了google的字库。只能屏蔽之,否则页面会一直转圈到请求超时。
  4. SyntaxHighlighter Evolved< | 3.2.1版本 | 由Alex Mills (Viper007Bond)创建
    传说中的代码高亮,想贴代码的话就来一发吧。
  5. Autoptimize | 2.0.2版本 | 由Ian Pye, Jerome Chen, James Greene, Simon Moore, David Fritsch, John Wineman (CloudFlare Team)创建
    加速,加速,加速。
  6. WordPress Posts Timeline | 1.7版本 | 由Wylie Hobbs创建
    不实用,就是画一个时间轴,像Facebook里的一样,来显示文章的顺序。
  7. WP-PostViews | 1.73版本 | 由Lester ‘GaMerZ’ Chan创建
    能统计每篇文章都多少人看过,还有一个小边栏能列出人气榜。
  8. 你好多莉 | 1.6版本 | 由Matt Mullenweg创建
    WP自带的,能在后台显示一些台词。
  9. AMP | 0.4.2版本 | 由Automattic创建
    著名的AMP,优化移动页面,使你的移动设备访问速度飞起来。
  10. WP 统计 | 10.3版本 | 由Mostafa Soufi & Greg Ross创建
    用来统计访问数据的,可以看到国家浏览器访问的地址之类的。最好玩的是Chrome,我后台看起来。。。Chrome全家福简直不敢看。

Salesforce中简单的进行Callout的Scheduler

global class MyScheduler implements Schedulable{
    global void execute(SchedulableContext SC){
        CallOut.doCallout();
    }
}
public class CallOut{
    @future(callout=true)
    public static void doCallout(){
               HttpRequest req = new HttpRequest();
        HttpResponse res = new HttpResponse();
        Http http = new Http();
        req.setEndpoint(endPoint);
        req.setMethod('POST');
        req.setCompressed(false);
        req.setBody('');
        req.setHeader('Content-Type', 'application/x-www-form-urlencoded');
        res = http.send(req);
        // do something with res.
        }
}

安装了代码高亮插件

终于找到了合适的插件,终于可以贴代码了。

随便贴一段表示庆祝。

<?php

require_once "functions.php";

 $userName = $_POST["name"];
 $passWord = $_POST["password"];
 $ssid = $_POST["ssid"];
 session_start();
 if(validateUser($userName,$passWord,$DB_CONFIG)){
 $_SESSION["auth"] = true;
 echo "set true";
 }

?>

<html>
 <body>
 <?php if($_SESSION["auth"] == true){echo "Authed" . "<br>";} else {echo "Unauth"."<br>";} ?>
 <?php echo $userName;?><br>
 <?php echo $passWord;?><br>
 <?php echo session_id()?><br>
 </body>
</html>