Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【DB笔试面试582】在Oracle中,什么是绑定变量窥探(下)?

【DB笔试面试582】在Oracle中,什么是绑定变量窥探(下)?

作者头像
AiDBA宝典
发布于 2019-09-29 07:52:00
发布于 2019-09-29 07:52:00
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

若启用了绑定变量窥探且WHERE条件为“目标列 BETWEEN X AND Y”的selectivity计算公式为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
selectivity=((Y-X)/(HIGH_VALUE-LOW_VALUE)+2/NUM_DISTINCT)*Null_Adjust
Null_Adjust=(NUM_ROWS-NUM_NULLS)/NUM_ROWS

--总公式:cardinality=((Y-X)/(HIGH_VALUE-LOW_VALUE)+2/NUM_DISTINCT)*(NUM_ROWS-NUM_NULLS)

--查询相关的值:
LHR@orclasm > SELECT D.NUM_ROWS FROM DBA_TABLES D WHERE D.TABLE_NAME='T_BP_20170609_LHR';

  NUM_ROWS
----------
     78170

LHR@orclasm > col LOW_VALUE format a6
LHR@orclasm > col high_VALUE format a10
LHR@orclasm > SELECT D.LOW_VALUE,D.HIGH_VALUE,UTL_RAW.CAST_TO_NUMBER(D.LOW_VALUE) LOW_VALUE1,UTL_RAW.CAST_TO_NUMBER(D.HIGH_VALUE) HIGH_VALUE1,D.NUM_DISTINCT,D.NUM_NULLS,D.HISTOGRAM FROM DBA_TAB_COL_STATISTICS D WHERE D.TABLE_NAME='T_BP_20170609_LHR' AND D.COLUMN_NAME='OBJECT_ID';

LOW_VA HIGH_VALUE LOW_VALUE1 HIGH_VALUE1 NUM_DISTINCT  NUM_NULLS HISTOGRAM
------ ---------- ---------- ----------- ------------ ---------- ---------------
C103   C3111A1F            2      162530        78158         12 NONE

--XY的值分别为100102时,以及XY的值分别为10060000时,基数Cardinality的值为:
LHR@orclasm > SELECT ROUND(((102-100)/(162530-2)+2/78158)*(78170-12)),ROUND(((60000-100)/(162530-2)+2/78158)*(78170-12)) FROM DUAL; 

ROUND(((102-100)/(162530-2)+2/78158)*(78170-12)) ROUND(((60000-100)/(162530-2)+2/78158)*(78170-12))
------------------------------------------------ --------------------------------------------------
                                               3                                              28807

--可以看到结果和上述直接计划中的结果一致。
--下面禁用绑定变量窥探:
LHR@orclasm > ALTER SESSION SET "_OPTIM_PEEK_USER_BINDS"=FALSE;

Session altered.

LHR@orclasm > EXEC :Y :=102;

PL/SQL procedure successfully completed.

LHR@orclasm > SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN :X AND :Y;

  COUNT(1)
----------
         3

LHR@orclasm > SELECT A.SQL_TEXT, A.SQL_ID,A.VERSION_COUNT,A.EXECUTIONS FROM V$SQLAREA A WHERE A.SQL_TEXT LIKE 'SELECT COUNT(1) FROM T_BP_20170609_LHR T%';

SQL_TEXT                                                                                             SQL_ID        VERSION_COUNT EXECUTIONS
---------------------------------------------------------------------------------------------------- ------------- ------------- ----------
SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN 100 AND 102                       5q51c7s4z0dp9             1          1
SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN :X AND :Y                         gya9jjznchps5             2          2
SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN 100 AND 60000                     gpbkt45132r8x             1          1


LHR@orclasm > SELECT A.PLAN_HASH_VALUE,A.CHILD_NUMBER,A.EXECUTIONS FROM V$SQL A WHERE A.SQL_ID='gya9jjznchps5';

PLAN_HASH_VALUE CHILD_NUMBER EXECUTIONS
--------------- ------------ ----------
     2066501558            0          1
      196260839            1          1

--可以看到目标SQL对应的列VERSION_COUNTEXECUTIONS的值均由之前的1变为了现在的2,这说明Oracle在第四次执行该SQL时用的还是硬解析。当把绑定变量窥探关闭后再次执行目标SQL时所对应的解析树和执行计划应该存储在CHILD_NUMBER1的Child Cursor中。CHILD_NUMBER1的Child Cursor所对应的执行计划为如下所示:
LHR@orclasm > SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('gya9jjznchps5',1,'advanced'));

PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------
SQL_ID  gya9jjznchps5, child number 1
-------------------------------------
SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN :X AND :Y

Plan hash value: 196260839

------------------------------------------------------------------------------------
| Id  | Operation          | Name          | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |               |       |       |     2 (100)|          |
|   1 |  SORT AGGREGATE    |               |     1 |     5 |            |          |
|*  2 |   FILTER           |               |       |       |            |          |
|*  3 |    INDEX RANGE SCAN| IDX_OBJID_LHR |   195 |   975 |     2   (0)| 00:00:01 |
------------------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------

   1 - SEL$1
   3 - SEL$1 / T@SEL$1

Outline Data
-------------

  /*+
      BEGIN_OUTLINE_DATA
      IGNORE_OPTIM_EMBEDDED_HINTS
      OPTIMIZER_FEATURES_ENABLE('11.2.0.3')
      DB_VERSION('11.2.0.3')
      OPT_PARAM('_optim_peek_user_binds' 'false')
      ALL_ROWS
      OUTLINE_LEAF(@"SEL$1")
      INDEX(@"SEL$1" "T"@"SEL$1" ("T_BP_20170609_LHR"."OBJECT_ID"))
      END_OUTLINE_DATA
  */

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - filter(:X<=:Y)
   3 - access("T"."OBJECT_ID">=:X AND "T"."OBJECT_ID"<=:Y)

Column Projection Information (identified by operation id):
-----------------------------------------------------------

   1 - (#keys=0) COUNT(*)[22]

可以看到Oracle评估出来执行这个索引范围扫描所返回结果集的Cardinality的值为195。注意,上述执行计划中的Outline Data部分有“OPT_PARAM('_optim_peek_user_binds' 'false')”,而且执行计划中并没有之前启用绑定窥探时出现的“Peeked Binds”部分的内容,这都说明此时Oracle确实己经禁用了绑定变量窥探。

使用DDL操作可以让Oracle再次执行目标SQL时使用硬解析,但这种方法的弊端在于其影响范围还是太广了,因为一旦对某个表执行了DDL操作,再次执行与这个表相关的所有SQL时就会全部使用硬解析。这是很不好的,特别是对于OLTP类型的应用系统而言,因为这可能会导致短时间内的硬解析数量剧增,进而影响系统的性能。

下面使用DBMS_SHARED_POOL.PURGE来删除共享池中的该游标:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LHR@orclasm > SELECT A.SQL_TEXT, A.SQL_ID,A.VERSION_COUNT,A.EXECUTIONS,A.ADDRESS,A.HASH_VALUE FROM V$SQLAREA A WHERE A.SQL_TEXT LIKE 'SELECT COUNT(1) FROM T_BP_20170609_LHR T%'; 

SQL_TEXT                                                                                             SQL_ID        VERSION_COUNT EXECUTIONS ADDRESS          HASH_VALUE
---------------------------------------------------------------------------------------------------- ------------- ------------- ---------- ---------------- ----------
SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN 100 AND 102                       5q51c7s4z0dp9             1          1 00000000A9490728  166737577
SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN :X AND :Y                         gya9jjznchps5             2          2 00000000A937CD78 3905443589
SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN 100 AND 60000                     gpbkt45132r8x             1          1 00000000A948FCA8 1110531357

LHR@orclasm > EXEC SYS.DBMS_SHARED_POOL.PURGE('00000000A937CD78,3905443589','C');

PL/SQL procedure successfully completed.

LHR@orclasm > SELECT A.SQL_TEXT, A.SQL_ID,A.VERSION_COUNT,A.EXECUTIONS,A.ADDRESS,A.HASH_VALUE FROM V$SQLAREA A WHERE A.SQL_TEXT LIKE 'SELECT COUNT(1) FROM T_BP_20170609_LHR T%'; 

SQL_TEXT                                                                                             SQL_ID        VERSION_COUNT EXECUTIONS ADDRESS          HASH_VALUE
---------------------------------------------------------------------------------------------------- ------------- ------------- ---------- ---------------- ----------
SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN 100 AND 102                       5q51c7s4z0dp9             1          1 00000000A9490728  166737577
SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN 100 AND 60000                     gpbkt45132r8x             1          1 00000000A948FCA8 1110531357

--可以看到目标SQL的确被删除了,现在保持X的值不变,修改Y的的值为60000LHR@orclasm > EXEC :Y :=60000;

PL/SQL procedure successfully completed.

LHR@orclasm > SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN :X AND :Y; 

  COUNT(1)
----------
     59539

LHR@orclasm > SELECT A.SQL_TEXT, A.SQL_ID,A.VERSION_COUNT,A.EXECUTIONS FROM V$SQLAREA A WHERE A.SQL_TEXT LIKE 'SELECT COUNT(1) FROM T_BP_20170609_LHR T%';

SQL_TEXT                                                                                             SQL_ID        VERSION_COUNT EXECUTIONS
---------------------------------------------------------------------------------------------------- ------------- ------------- ----------
SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN 100 AND 102                       5q51c7s4z0dp9             1          1
SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN :X AND :Y                         gya9jjznchps5             2          1
SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN 100 AND 60000                     gpbkt45132r8x             1          1

LHR@orclasm > SELECT A.PLAN_HASH_VALUE,A.CHILD_NUMBER,A.EXECUTIONS FROM V$SQL A WHERE A.SQL_ID='gya9jjznchps5';

PLAN_HASH_VALUE CHILD_NUMBER EXECUTIONS
--------------- ------------ ----------
      196260839            0          1

--可以看到,EXECUTIONS的值为1说明Oracle在执行此SQL时确实是在用硬解析,但这里VERSION COUNT的值为什么会是2?应该是1才对。从V$SQL查询结果可以看到,上述目标SQL对应的Parent Cursor下确实只挂了一个Child Cursor,所以VERSION_COUNT的值应该是1而不是2(这里也许是Oracle的Bug,不再深究)。
--执行计划为:
LHR@orclasm > SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('gya9jjznchps5',0,'advanced'));

PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------
SQL_ID  gya9jjznchps5, child number 0
-------------------------------------
SELECT COUNT(1) FROM T_BP_20170609_LHR T WHERE T.OBJECT_ID BETWEEN :X AND :Y

Plan hash value: 196260839

------------------------------------------------------------------------------------
| Id  | Operation          | Name          | Rows  | Bytes | Cost (%CPU)| Time     |
------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |               |       |       |     2 (100)|          |
|   1 |  SORT AGGREGATE    |               |     1 |     5 |            |          |
|*  2 |   FILTER           |               |       |       |            |          |
|*  3 |    INDEX RANGE SCAN| IDX_OBJID_LHR |   195 |   975 |     2   (0)| 00:00:01 |
------------------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------

   1 - SEL$1
   3 - SEL$1 / T@SEL$1

Outline Data
-------------

  /*+
      BEGIN_OUTLINE_DATA
      IGNORE_OPTIM_EMBEDDED_HINTS
      OPTIMIZER_FEATURES_ENABLE('11.2.0.3')
      DB_VERSION('11.2.0.3')
      OPT_PARAM('_optim_peek_user_binds' 'false')
      ALL_ROWS
      OUTLINE_LEAF(@"SEL$1")
      INDEX(@"SEL$1" "T"@"SEL$1" ("T_BP_20170609_LHR"."OBJECT_ID"))
      END_OUTLINE_DATA
  */

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - filter(:X<=:Y)
   3 - access("T"."OBJECT_ID">=:X AND "T"."OBJECT_ID"<=:Y)

Column Projection Information (identified by operation id):
-----------------------------------------------------------

   1 - (#keys=0) COUNT(*)[22]


48 rows selected.

从上述显示内容可以看出,Oracle此时选择的执行计划还是走对索引IDX_OBJID_LHR的索引范围扫描,而且Oracle评估出来执行这个索引范围扫描所返回结果集的Cardinality的值依然是195。这意味着当把绑定变量窥探关闭后,无论对绑定变量X和Y传入的值是多少,都不会影响Oracle对于目标SQL执行计划的选择。如果不使用绑定变量窥探,那么对于那些可选择率可能会随着具体输入值的变化而变化的谓词条件而言,Oracle会使用默认的可选择率(5%)。

下面来计算一下cardinality,

若禁用了绑定变量窥探且WHERE条件为“目标列 BETWEEN X AND Y”的selectivity和Cardinality的计算公式为如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Cardinality=NUM ROWS*Selectivity
Selectivity=0.05*0.05

注意,WHERE条件为“目标列 BETWEEN X AND Y",相当于“目标列 >= X AND目标列 <= Y"。对于“目标列 >=X ”和“目标列 <= Y”而言,Oracle均会使用5%的可选择率,所以“目标列 >= X AND目标列 <= Y”的总的可选择率就是0.05*0.05=0.0025。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LHR@orclasm > SELECT ROUND(78170*0.0025) FROM DUAL; 

ROUND(78170*0.0025)
-------------------
                195

可见和执行计划中的一致。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
解答:EasyDSS视频点播时音频是否可以设置为默认开启?
EasyDSS视频直播点播平台集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发的视频流可覆盖全终端等视频能力服务。
TSINGSEE青犀视频
2022/06/29
1.3K0
视频直播点播平台EasyDSS调用接口后,录像回看无法打开是什么原因?
随着视频直播行业的蓬勃发展,视频直播点播平台EasyDSS在该领域的应用也得到快速普及。EasyDSS互联网视频云服务具有视频直播、点播、视频拉转推、时移、视频回看等功能特点,支持HTTP、HLS、RTMP等播出协议,并且兼容多终端,如Windows、Android、iOS、Mac等。为了便于用户集成与二次开发,我们也提供了API接口供用户调用和集成。
TSINGSEE青犀视频
2023/10/24
1770
EasyDSS平台其他协议的视频可正常播放,WebRTC却无法播放是什么原因?
EasyDSS视频直播点播平台集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储,分发的视频流可覆盖全终端、全平台。
TSINGSEE青犀视频
2022/09/09
5140
视频直播点播平台EasyDSS降低视频流直播延迟的2种方法
视频直播点播平台EasyDSS支持一站式的上传、转码、直播、回放、嵌入、分享等功能,在推流上,可支持手机推流短视频、音乐等音视频文件,提供多种上传方式,支持批量上传、大文件上传。平台视频功能具备超低延迟、超高画质、超大并发访问量等特点,随着视频直播领域的火热发展,EasyDSS稳定流畅的推拉流与直播、点播等功能,在行业领域中也得到了广泛的应用。
TSINGSEE青犀视频
2022/11/14
9570
视频集中存储/直播点播平台EasyDSS内核无法启动是什么原因?
视频推拉流EasyDSS视频直播点播平台,集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。
TSINGSEE青犀视频
2023/08/23
1940
调用EasyDSS返回的直播快照接口,却无法编辑只能新建是什么原因?
EasyDSS视频直播点播平台集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务,在应用场景上,平台可以运用在互联网教育、在线课堂、游戏直播等领域。
TSINGSEE青犀视频
2023/07/21
1710
视频集中存储/直播点播平台EasyDSS点播文件分类功能新升级
视频推拉流EasyDSS视频直播点播平台,集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。
TSINGSEE青犀视频
2023/09/05
1990
EasyDSS播放器码率显示不全是什么原因?如何解决?
EasyDSS互联网视频云平台可提供一站式的视频转码、点播、直播、推拉流、时移回放等服务,也能支持4K视频的直播、点播等功能。EasyDSS可用于视频点播,并支持OBS、推流相机、EasyRTMP等设备的推流直播,可应用在AR、VR、无人机推流、虚拟直播、教育培训、远程会议等场景中。
TSINGSEE青犀视频
2022/10/24
3930
如何通过接口获取EasyDSS点播文件的历史播放次数以及m3u8地址?
EasyDSS互联网视频云平台可供一站式的视频转码、点播、直播、推拉流、时移回放等服务,也能支持4K视频的直播、点播等功能。为了便于用户二次开发与集成,TSINGSEE青犀视频旗下的各大视频平台均支持API接口调用,用户可以根据自己的需求,参考对应平台的接口调用文档即可。
TSINGSEE青犀视频
2022/08/22
6590
EasyDSS视频直播点播平台出现断流该如何重连?具体步骤是什么?
视频推拉流EasyDSS视频直播点播平台,集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。
TSINGSEE青犀视频
2023/11/20
2140
视频流媒体平台EasyDSS点播模块添加管理员新增点播目录权限判定功能
EasyDSS支持直播和点播,其中点播功能主要包含:上传、多分辨率转码、分发;直播功能主要包含:直播、录像、检索、回放、下载等。基于视频网站、在线教育、短视频点播等应用场景的需求,EasyDSS已经建立了一套完整的存储、转码、分发的点播能力。
TSINGSEE青犀视频
2021/06/17
3690
视频直播点播平台EasyDSS如何单独保存录像计划文件?具体如何操作呢?
视频推拉流EasyDSS视频直播点播平台,集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。
TSINGSEE青犀视频
2023/09/12
1800
新版EasyDSS平台如何配置视频流转推功能?
EasyDSS是一款流媒体直播点播视频能力平台,可提供一站式的视频推拉流、转码、直播、点播、时移回放、存储等视频服务,支持播放H.265编码视频,还能支持4K视频的直播、点播等功能,可应用于虚拟直播、无人机推流、AR直播、在线教育、远程培训等场景上。
TSINGSEE青犀视频
2022/06/15
3570
Linux系统上非管理员如何启动EasyDSS视频直播点播程序?
视频推拉流EasyDSS视频直播点播平台,集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。
TSINGSEE青犀视频
2023/10/16
1880
如何允许EasyDSS在线课堂系统上传点播文件时文件名带有空格?
在线课堂、在线医疗这类场景中,EasyDSS视频平台内的点播系统可以让无法在线观看视频的用户观看点播文件。EasyDSS点播功能,支持上传mp3、mp4、wav、avi等多种格式的视频流,便捷实用。
TSINGSEE青犀视频
2021/05/19
5180
视频推拉流/直播点播平台EasyDSS分享的链接提示“无信号”,该如何解决?
视频直播点播平台EasyDSS可支持用户自行上传视频文件,也可将上传的点播文件作为虚拟直播进行播放。平台能支持多屏播放,可兼容Windows、Android、iOS、Mac等操作系统,还能支持CDN转推,具备较强的可拓展性与灵活性。
TSINGSEE青犀视频
2023/10/17
1790
EasyDSS平台如何通过接口在特定的视频分类里上传点播文件?
EasyDSS视频直播点播平台支持Flash、H5播放,可提供一站式的视频推拉流、转码、点播、直播、时移回放、存储等服务,支持播放H.265编码视频,可兼容多操作系统。搭配RTMP高清摄像头使用,可将设备的实时流推送到平台上,实现无人机视频推流直播,可应用在城市航拍、农业植保、森林防火、秸秆焚烧、电力巡检等场景中。
TSINGSEE青犀视频
2022/06/15
9120
EasyDSS如何通过接口实现文件合成?
EasyDSS支持一站式的上传、转码、直播、回放、嵌入、分享功能,具有多屏播放、自由组合、接口丰富等特点。平台可以为用户提供专业、稳定的直播推流、转码、分发和播放服务,全面满足超低延迟、超高画质、超大并发访问量的要求。在推流方面,EasyDSS支持手机推流、短视频、音乐等音视频文件,提供多种上传方式,支持批量上传、大文件上传。
TSINGSEE青犀视频
2022/09/08
3480
EasyDSS平台定制化项目新增删除录像的API接口
互联网视频直播点播EasyDSS平台能实现视频流媒体的上传、转码、存储、录像、推流、拉流、直播等功能,在场景上,可以应用到互联网教育、在线课堂、游戏直播、视频点播、无人机航拍等领域。为了便于用户集成调用与二次开发,我们也提供了丰富的API接口供用户使用。有需要的用户可以查看官方的API接口文档。
TSINGSEE青犀视频
2022/07/18
3420
EasyDSS增加首次登录强制修改密码
EasyDSS视频直播点播平台支持Flash、H5播放,可提供一站式的视频推拉流、转码、点播、直播、时移回放、存储等服务,支持播放H.265编码视频,可兼容多操作系统。搭配RTMP高清摄像头使用,可将设备的实时流推送到平台上,实现无人机视频推流直播,可应用在城市航拍、农业植保、森林防火、秸秆焚烧、电力巡检等场景中。
TSINGSEE青犀视频
2023/07/12
2370
推荐阅读
解答:EasyDSS视频点播时音频是否可以设置为默认开启?
1.3K0
视频直播点播平台EasyDSS调用接口后,录像回看无法打开是什么原因?
1770
EasyDSS平台其他协议的视频可正常播放,WebRTC却无法播放是什么原因?
5140
视频直播点播平台EasyDSS降低视频流直播延迟的2种方法
9570
视频集中存储/直播点播平台EasyDSS内核无法启动是什么原因?
1940
调用EasyDSS返回的直播快照接口,却无法编辑只能新建是什么原因?
1710
视频集中存储/直播点播平台EasyDSS点播文件分类功能新升级
1990
EasyDSS播放器码率显示不全是什么原因?如何解决?
3930
如何通过接口获取EasyDSS点播文件的历史播放次数以及m3u8地址?
6590
EasyDSS视频直播点播平台出现断流该如何重连?具体步骤是什么?
2140
视频流媒体平台EasyDSS点播模块添加管理员新增点播目录权限判定功能
3690
视频直播点播平台EasyDSS如何单独保存录像计划文件?具体如何操作呢?
1800
新版EasyDSS平台如何配置视频流转推功能?
3570
Linux系统上非管理员如何启动EasyDSS视频直播点播程序?
1880
如何允许EasyDSS在线课堂系统上传点播文件时文件名带有空格?
5180
视频推拉流/直播点播平台EasyDSS分享的链接提示“无信号”,该如何解决?
1790
EasyDSS平台如何通过接口在特定的视频分类里上传点播文件?
9120
EasyDSS如何通过接口实现文件合成?
3480
EasyDSS平台定制化项目新增删除录像的API接口
3420
EasyDSS增加首次登录强制修改密码
2370
相关推荐
解答:EasyDSS视频点播时音频是否可以设置为默认开启?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验