cheatsheet_en.md 2.3 KB
Newer Older
martianzhang's avatar
martianzhang 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
[toc]

# Useful Commands

## Basic suggest

```bash
echo "select title from sakila.film" | ./soar -log-output=soar.log
```

## Analyze SQL with test environment

```bash
vi soar.yaml
# yaml format config file
online-dsn:
    addr:     127.0.0.1:3306
    schema:   sakila
    user:     root
    password: "1t'sB1g3rt"
    disable:  false

test-dsn:
    addr:     127.0.0.1:3306
    schema:   sakila
    user:     root
    password: "1t'sB1g3rt"
    disable:  false
```

```bash
echo "select title from sakila.film" | ./soar -test-dsn="root:1t'sB1g3rt@127.0.0.1:3306/sakila" -allow-online-as-test -log-output=soar.log
```

## List supported heuristic rules

```bash
$ soar -list-heuristic-rules
```

## Ignore Rules

```bash
$ soar -ignore-rules "ALI.001,IDX.*"
```

## List supported report-type

```bash
$ soar -list-report-types
```

## Set report-type for output

```bash
$ soar -report-type json
```

## Syntax Check

```bash
$ echo "select * from tb" | soar -only-syntax-check
$ echo $?
0

$ echo "select * fromtb" | soar -only-syntax-check
At SQL 0 : syntax error at position 16 near 'fromtb'
$ echo $?
1

```

## Slow log analyzing

```bash
$ pt-query-digest slow.log > slow.log.digest
# parse pt-query-digest's output which example script
$ python2.7 doc/example/digest_pt.py slow.log.digest > slow.md
```


## SQL FingerPrint

```bash
$ echo "select * from film where col='abc'" | soar -report-type=fingerprint
```

Output

```sql
select * from film where col=?
```

## Convert UPDATE/DELETE/INSERT into SELECT

```bash
$ echo "update film set title = 'abc'" | soar -rewrite-rules dml2select,delimiter  -report-type rewrite
```

Output

```sql
select * from film;
```


## Merge ALTER SQLs

```bash
$ echo "alter table tb add column a int; alter table tb add column b int;" | soar -report-type rewrite -rewrite-rules mergealter
```

Output

```sql
ALTER TABLE `tb` add column a int, add column b int ;
```

## SQL Pretty

```bash
$ echo "select * from tbl where col = 'val'" | ./soar -report-type=pretty
```

Output

```sql
SELECT
  *
FROM
  tbl
WHERE
  col  = 'val';
```

## Convert markdown to HTML

md2html comes with other flags, such as `-report-css`, `-report-javascript`, `-markdown-extensions`, `-markdown-html-flags`, you can get more self control HTML report.

```bash
$ cat test.md | soar -report-type md2html > test.html
```