Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions TOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,7 @@
+ [`COMMIT`](/sql-statements/sql-statement-commit.md)
+ [`CHANGE DRAINER`](/sql-statements/sql-statement-change-drainer.md)
+ [`CHANGE PUMP`](/sql-statements/sql-statement-change-pump.md)
+ [`CREATE BINDING`](/sql-statements/sql-statement-create-binding.md)
+ [`CREATE DATABASE`](/sql-statements/sql-statement-create-database.md)
+ [`CREATE INDEX`](/sql-statements/sql-statement-create-index.md)
+ [`CREATE SEQUENCE`](/sql-statements/sql-statement-create-sequence.md)
Expand All @@ -227,6 +228,7 @@
+ [`DESC`](/sql-statements/sql-statement-desc.md)
+ [`DESCRIBE`](/sql-statements/sql-statement-describe.md)
+ [`DO`](/sql-statements/sql-statement-do.md)
+ [`DROP BINDING`](/sql-statements/sql-statement-drop-binding.md)
+ [`DROP COLUMN`](/sql-statements/sql-statement-drop-column.md)
+ [`DROP DATABASE`](/sql-statements/sql-statement-drop-database.md)
+ [`DROP INDEX`](/sql-statements/sql-statement-drop-index.md)
Expand Down Expand Up @@ -264,6 +266,7 @@
+ [`SET [GLOBAL|SESSION] <variable>`](/sql-statements/sql-statement-set-variable.md)
+ [`SHOW ANALYZE STATUS`](/sql-statements/sql-statement-show-analyze-status.md)
+ [`SHOW [BACKUPS|RESTORES]`](/sql-statements/sql-statement-show-backups.md)
+ [`SHOW BINDINGS`](/sql-statements/sql-statement-show-bindings.md)
+ [`SHOW BUILTINS`](/sql-statements/sql-statement-show-builtins.md)
+ [`SHOW CHARACTER SET`](/sql-statements/sql-statement-show-character-set.md)
+ [`SHOW COLLATION`](/sql-statements/sql-statement-show-collation.md)
Expand Down
42 changes: 42 additions & 0 deletions sql-statements/sql-statement-create-binding.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
title: CREATE BINDING
summary: Use of CREATE BINDING in TiDB database.
category: reference
---

# CREATE BINDING

The `CREATE BINDING` statement is used to create a new SQL bind on TiDB.

## Synopsis

**CreateBindingStmt:**

![CreateBindingStmt](/media/sqlgram/CreateBindingStmt.png)

**GlobalScope:**

![GlobalScope](/media/sqlgram/GlobalScope.png)

**SelectStmt**

![SelectStmt](/media/sqlgram/SelectStmt.png)

****

## Syntax description

{{< copyable "sql" >}}

```sql
CREATE [GLOBAL | SESSION] BINDING FOR SelectStmt USING SelectStmt;
```

This statement binds SQL execution plans at the GLOBAL or SESSION scope. The default scope is SESSION.

The bound SQL statement is parameterized and stored in the system table. When a SQL query is processed, as long as the parameterized SQL statement and a bound one in the system table are consistent and the system variable `tidb_use_plan_baselines` is set to `on` (`on` by default), the corresponding optimizer hint is available. If multiple execution plans are available, the optimizer chooses to bind the plan with the least cost.

## See also

* [DROP BINDING](/sql-statements/sql-statement-drop-binding.md)
* [SHOW BINDINGS](/sql-statements/sql-statement-show-bindings.md)
38 changes: 38 additions & 0 deletions sql-statements/sql-statement-drop-binding.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
title: DROP BINDING
summary: Use of DROP BINDING in TiDB database.
category: reference
---

# DROP BINDING

The `DROP BINDING` statement is used to drop a SQL bind on TiDB.

## Synopsis

**DropBindingStmt:**

![DropBindingStmt](/media/sqlgram/DropBindingStmt.png)

**GlobalScope:**

![GlobalScope](/media/sqlgram/GlobalScope.png)

**SelectStmt**

![SelectStmt](/media/sqlgram/SelectStmt.png)

## Syntax description

{{< copyable "sql" >}}

```sql
DROP [GLOBAL | SESSION] BINDING FOR SelectStmt;
```

This statement removes a specified execution plan binding at the GLOBAL or SESSION level. The default scope is SESSION.

## See also

* [CREATE BINDING](/sql-statements/sql-statement-create-binding.md)
* [SHOW BINDINGS](/sql-statements/sql-statement-show-bindings.md)
53 changes: 53 additions & 0 deletions sql-statements/sql-statement-show-bindings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
title: SHOW BINDINGS
summary: Use of SHOW BINDINGS binding in TiDB database.
category: reference
---

# SHOW BINDINGS

The `SHOW BINDINGS` statement is used to display information about all created SQL bindings.

## Synopsis

**ShowStmt:**

![ShowStmt](/media/sqlgram/ShowStmt.png)

**ShowTargetFilterable:**

![ShowTargetFilterable](/media/sqlgram/ShowTargetFilterable.png)

**GlobalScope:**

![GlobalScope](/media/sqlgram/GlobalScope.png)

**ShowLikeOrWhereOpt**

![ShowLikeOrWhereOpt](/media/sqlgram/ShowLikeOrWhereOpt.png)

## Syntax description

{{< copyable "sql" >}}

```sql
SHOW [GLOBAL | SESSION] BINDINGS [ShowLikeOrWhereOpt];
```

This statement outputs the execution plan bindings at the GLOBAL or SESSION level. The default scope is SESSION. Currently `SHOW BINDINGS` outputs eight columns, as shown below:

| Column Name | Description |
| :-------- | :------------- |
| original_sql | Original SQL statement after parameterization |
| bind_sql | Bound SQL statement with hints |
| default_db | Default database |
| status | Status including 'Using', 'Deleted', 'Invalid', 'Rejected', and 'Pending verification'|
| create_time | Created time |
| update_time | Updated time |
| charset | Character set |
| collation | Sorting rule |

## See also

* [CREATE BINDING](/sql-statements/sql-statement-create-binding.md)
* [DROP BINDING](/sql-statements/sql-statement-drop-binding.md)