aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfomichev <fomichev@ydb.tech>2023-01-05 12:44:13 +0300
committerfomichev <fomichev@ydb.tech>2023-01-05 12:44:13 +0300
commit623889c371c86a635694885a8fcf725c9206fe5c (patch)
tree933d64337583f469c7264f7fca3aae67b8bf652b
parentfc3de43ca56047d485bbfcb32d616fde605a9e80 (diff)
downloadydb-623889c371c86a635694885a8fcf725c9206fe5c.tar.gz
refactor an article about parameterised queries ()
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/feature-parity.md1
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/parameterized_queries.md31
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/toc_i.yaml10
3 files changed, 38 insertions, 4 deletions
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/feature-parity.md b/ydb/docs/ru/core/reference/ydb-sdk/feature-parity.md
index 321e05243e5..5465f41c846 100644
--- a/ydb/docs/ru/core/reference/ydb-sdk/feature-parity.md
+++ b/ydb/docs/ru/core/reference/ydb-sdk/feature-parity.md
@@ -1,4 +1,5 @@
# Сравнение возможностей SDK
+Данный раздел позволяет сравнить возможности {{ ydb-short-name }} SDK, которые реализованы для разных языков программирования.
|Feature|C\+\+|Python|Go|Java|NodeJS|C#|Rust|PHP|
|:---|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/parameterized_queries.md b/ydb/docs/ru/core/reference/ydb-sdk/parameterized_queries.md
new file mode 100644
index 00000000000..eb290d54987
--- /dev/null
+++ b/ydb/docs/ru/core/reference/ydb-sdk/parameterized_queries.md
@@ -0,0 +1,31 @@
+## Параметризованные запросы
+
+{{ ydb-short-name }} поддерживает и рекомендует к использованию так называемые [параметризованные запросы](https://en.wikipedia.org/wiki/Prepared_statement). В таких запросах данные передаются отдельно от самого тела запроса, а в SQL-запросе используются специальные параметры для обозначения местоположения данных.
+
+Запрос с данными в теле запроса:
+
+```sql
+SELECT sa.title AS season_title, sr.title AS series_title
+FROM seasons AS sa INNER JOIN series AS sr ON sa.series_id = sr.series_id
+WHERE sa.series_id = 15 AND sa.season_id = 3
+```
+
+Соответствующий ему параметризованный запрос:
+
+```sql
+DECLARE $seriesId AS Uint64;
+DECLARE $seasonId AS Uint64;
+
+SELECT sa.title AS season_title, sr.title AS series_title
+FROM seasons AS sa INNER JOIN series AS sr ON sa.series_id = sr.series_id
+WHERE sa.series_id = $seriesId AND sa.season_id = $seasonId
+```
+
+Параметризованные запросы записываются в форме шаблона, в котором определенного вида имена заменяются конкретными параметрами при каждом выполнении запроса. Лексемы начинающиеся со знака ```$``` такие, как```$seriesId``` и ```$seasonId``` в запросе выше, используются для обозначения параметров.
+
+Параметризованные запросы обеспечивают следующие преимущества:
+
+* При повторяющихся запросах сервер базы данных имеет возможность кэшировать план запроса для параметризованных запросов. Это радикально снижает потребление CPU и повышает пропускную способность системы;
+* Использование параметризованных запросов спасает от уязвимостей вида [SQL Injection](https://en.wikipedia.org/wiki/SQL_injection).
+
+{{ ydb-short-name }} SDK автоматически кэшируют планы параметризованных запросов по умолчанию, для этого обычно используется настройка ```KeepInCache = true```.
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/toc_i.yaml b/ydb/docs/ru/core/reference/ydb-sdk/toc_i.yaml
index 42d30418109..f475bb66ff4 100644
--- a/ydb/docs/ru/core/reference/ydb-sdk/toc_i.yaml
+++ b/ydb/docs/ru/core/reference/ydb-sdk/toc_i.yaml
@@ -1,10 +1,12 @@
items:
- name: Обзор
href: index.md
- - name: Установка
+ - name: Установка SDK
href: install.md
- - name: Аутентификация
+ - name: Аутентификация в SDK
href: auth.md
+ - name: Параметризованные запросы
+ href: parameterized_queries.md
- name: Работа с топиками
href: topic.md
- name: Тестовое приложение
@@ -14,9 +16,9 @@ items:
- name: gRPC API
items:
- name: Обзор
- href: overview-grpc-api.md
+ href: overview-grpc-api.md
- name: Health Check API
- href: health-check-api.md
+ href: health-check-api.md
- name: Рецепты кода
include: { mode: link, path: recipes/toc_p.yaml }
- name: Сравнение возможностей SDK