데이터 베이스 MySQL 튜토리얼 对于自适应游标共享的一点补充

对于自适应游标共享的一点补充

Jun 07, 2016 pm 03:23 PM
공유됨 ~에 대한 커서

关于自适应游标共享请参加:http://blog.csdn.net/yidian815/article/details/17959907 对自适应游标共享的理解,本人认为难点在于对BIND_SENSITIVE 和BIND_AWARE的认识。再来复习一下: bind_sensitive:oracle认为该语句可能会因为绑定变量的不同而需要采取

关于自适应游标共享请参加:http://blog.csdn.net/yidian815/article/details/17959907

对自适应游标共享的理解,本人认为难点在于对BIND_SENSITIVE 和BIND_AWARE的认识。再来复习一下:

bind_sensitive:oracle认为该语句可能会因为绑定变量的不同而需要采取不同的执行计划,因此需要监控该语句的执行并依据执行结果做出判断。

bind_aware:oracle通过监视已经认定该语句需要针对不同的绑定变量取值采取不同的执行计划。

现在就好出现如下的问题:

oracle认定什么样式的sql语句是bind_sensitve?

对于bind_aware的语句,oracle是如何根据不同的变量取值来选择执行计划的?

在回答这些问题之前,先来看一下测试环境

SQL> desc t2;
 名称						       是否为空? 类型
 ----------------------------------------------------- -------- ------------------------------------
 ID								NUMBER
 RTYPE								VARCHAR2(20)
 SEL								NUMBER

SQL> select column_name,histogram from dba_tab_cols where table_name='T2' AND OWNER='EASY1';

COLUMN_NAME		       HISTOGRAM
------------------------------ ---------------
ID			       NONE
RTYPE			       FREQUENCY
SEL			       NONE


SQL> select rtype,count(1),min(sel),max(sel) from t2 group by rtype order by 3;

RTYPE		       COUNT(1)   MIN(SEL)   MAX(SEL)
-------------------- ---------- ---------- ----------
1			      1 7.6295E-06 7.6295E-06
2			      2 .000015259 .000015259
3			      4 .000030518 .000030518
4			      8 .000061036 .000061036
5			     16 .000122072 .000122072
6			     32 .000244144 .000244144
7			     64 .000488289 .000488289
8			    128 .000976577 .000976577
9			    256 .001953155 .001953155
10			    512  .00390631  .00390631
11			   1024 .007812619 .007812619

RTYPE		       COUNT(1)   MIN(SEL)   MAX(SEL)
-------------------- ---------- ---------- ----------
12			   2048 .015625238 .015625238
13			   4096 .031250477 .031250477
14			   8192 .062500954 .062500954
15			  16384 .125001907 .125001907
16			  32768 .250003815 .250003815
17			  65536  .50000763  .50000763
로그인 후 복사
sel代表rype在整张表中的选择性。

首先我们猜测第一个问题的答案。

因为bind_sensitive是针对绑定变量的不同取值而论的,因此我们认为只有具有绑定变量的语句才可能是bind_sensitive的。

SQL> select sum(id) from t2 where rtype=16;

   SUM(ID)
----------
1610596352

SQL> select sum(id) from t2 where rtype=1;

   SUM(ID)
----------
	 1
로그인 후 복사
SQL> l
  1* select sql_text,is_bind_sensitive,is_bind_aware from v$sql where sql_text like 'select sum(id) from t2%'
SQL> /

SQL_TEXT						     I I
------------------------------------------------------------ - -
select sum(id) from t2 where rtype=1			     N N
select sum(id) from t2 where rtype=16			     N N
로그인 후 복사
是不是具有绑定变量就一定会是bind_sensitive?
SQL> var v varchar2(100)
SQL> select sum(id) from t2 where rtype=:v;

   SUM(ID)
----------

SQL> select sum(id) from t2 where id=:v;

   SUM(ID)
----------
로그인 후 복사
SQL> l
  1* select sql_text,is_bind_sensitive,is_bind_aware from v$sql where sql_text like 'select sum(id) from t2%'
SQL> /

SQL_TEXT						     I I
------------------------------------------------------------ - -
select sum(id) from t2 where rtype=1			     N N
select sum(id) from t2 where id=:v			     N N
select sum(id) from t2 where rtype=:v			     Y N
select sum(id) from t2 where rtype=16			     N N
로그인 후 복사
看来不光需要具有绑定变量,还需要在绑定变量所在列上具有直方图统计信息才可以。当然这是在等值操作的情况下,在其他情况下那?在这里我们不做分析,至少在目前的情况下,oracle对bind_sensitive具有如下限制(官方文档):

The optimizer has peeked at the bind values to generate selectivity estimates.

A histogram exists on the column containing the bind value.

  • 下面一段文字来自网络,尽快参考

    Q: What triggers a cursor to be marked "bind sensitive"?

    A: Our goal is to consider many types of predicates where the selectivity can change when the bind value changes. In this first version of the feature, we only handle equality predicates where a histogram exists on the column and range predicates (with or without histogram). We do not currently consider LIKE predicates, but it is on the top of our list for future work.

    下面我们来看看bind_aware的语句是如何工作的,为了简化操作,我们直接使用BIND_AWARE hint。关于该hint的使用,有如下解释:

    From 11.1.0.7 onward it is possible to skip the monitoring that is required to detect bind-sensitive queries by using the BIND_AWARE hint. In the following example, the presence of the hint tells the optimizer that we believe the query is bind-sensitive, so it should use bind-aware cursor sharing from the first execution.

    SELECT /*+ BIND_AWARE */ MAX(id) FROM acs_test_tab WHERE record_type = :l_record_type;
    로그인 후 복사

    The hint will only work if the query uses bind variables in WHERE clause predicates referencing columns with histograms.

    There is also a NO_BIND_AWARE hint that tells the optimizer to ignore bind-sensitive queries, effectively hiding the query from the adaptive cursor sharing functionality.

    Bind-aware cursor sharing has a small overhead associated with it, which is why Oracle use the "adaptive" approach to identifying queries that would benefit from bind-aware cursor sharing. Adding the hint to queries that will not benefit from it is a waste.

    在进一步实验之前,创建表t1

    SQL> create table t1 as select * from t2 where 1 =2;
    
    表已创建。
    
    SQL> alter table t1 modify rtype number;
    
    表已更改。
    
    SQL> insert into t1 select * from t2;
    
    已创建 131071 行。
    
    SQL> commit;
    
    提交完成。
    
    SQL> create index i1 on t1(rtype);
    
    索引已创建。
    로그인 후 복사
    SQL> exec dbms_stats.gather_table_stats(user,'t1',cascade=>true,estimate_percent=>null,method_opt=>'for all columns size auto,for columns rtype size 40');
    
    PL/SQL 过程已成功完成。
    
    SQL> select table_name,column_name,endpoint_number,to_char(endpoint_value),endpoint_actual_value from user_histograms where table_name='T1';
    
    TABLE_NAME COLUMN_NAME		ENDPOINT_NUMBER TO_CHAR(ENDPOINT_VALUE) 		 ENDPOINT_ACTUAL_VALUE
    ---------- -------------------- --------------- ---------------------------------------- ------------------------------
    T1	   RTYPE			      1 1
    T1	   RTYPE			      3 2
    T1	   RTYPE			      7 3
    T1	   RTYPE			     15 4
    T1	   RTYPE			     31 5
    T1	   RTYPE			     63 6
    T1	   RTYPE			    127 7
    T1	   RTYPE			    255 8
    T1	   RTYPE			    511 9
    T1	   RTYPE			   1023 10
    T1	   RTYPE			   2047 11
    
    TABLE_NAME COLUMN_NAME		ENDPOINT_NUMBER TO_CHAR(ENDPOINT_VALUE) 		 ENDPOINT_ACTUAL_VALUE
    ---------- -------------------- --------------- ---------------------------------------- ------------------------------
    T1	   RTYPE			   4095 12
    T1	   RTYPE			   8191 13
    T1	   RTYPE			  16383 14
    T1	   RTYPE			 131071 17
    T1	   ID				      0 1
    T1	   SEL				      0 .00000762951094834821
    T1	   ID				      1 131071
    T1	   SEL				      1 .87501335164416
    
    已选择19行。
    로그인 후 복사
    SQL> select rtype,count(1),min(sel),max(sel) from t1 group by rtype order by 3;
    
         RTYPE   COUNT(1)	MIN(SEL)   MAX(SEL)
    ---------- ---------- ---------- ----------
    	 1	    1 7.6295E-06 7.6295E-06
    	 2	    2 .000015259 .000015259
    	 3	    4 .000030518 .000030518
    	 4	    8 .000061036 .000061036
    	 5	   16 .000122072 .000122072
    	 6	   32 .000244144 .000244144
    	 7	   64 .000488289 .000488289
    	 8	  128 .000976577 .000976577
    	 9	  256 .001953155 .001953155
    	10	  512  .00390631  .00390631
    	11	 1024 .007812619 .007812619
    
         RTYPE   COUNT(1)	MIN(SEL)   MAX(SEL)
    ---------- ---------- ---------- ----------
    	12	 2048 .015625238 .015625238
    	13	 4096 .031250477 .031250477
    	14	 8192 .062500954 .062500954
    	17     114688 .875013352 .875013352
    로그인 후 복사
    对bind_aware的实验过程如下:
    SQL> alter system flush shared_pool;
    
    系统已更改。
    
    SQL> var vr number;
    SQL> exec :vr := 1
    
    PL/SQL 过程已成功完成。
    
    SQL> select /*+ bind_aware */ sum(id) from t1 where rtype = :vr;
    
       SUM(ID)
    ----------
    	 1
    
    SQL> @show_sql
    
    SQL_TEXT						     EXECUTIONS I I I
    ------------------------------------------------------------ ---------- - - -
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y Y    --由于使用了bind_aware HINT 
    
    SQL> @show_sel
    
    ADDRESS 	 HASH_VALUE SQL_ID	  CHILD_NUMBER PREDICATE				  RANGE_ID LOW	      HIGH
    ---------------- ---------- ------------- ------------ ---------------------------------------- ---------- ---------- ----------
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     0 =VR						 0 0.000007   0.000008 --根据直方图计算出rtype=1的选择性
    
    SQL> exec :vr := 2
    
    PL/SQL 过程已成功完成。
    
    SQL> select /*+ bind_aware */ sum(id) from t1 where rtype = :vr;
    
       SUM(ID)
    ----------
    	 5
    
    SQL> @show_sql
    
    SQL_TEXT						     EXECUTIONS I I I
    ------------------------------------------------------------ ---------- - - -
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y N  --逐步淘汰出内存
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y Y
    
    SQL> @show_sel
    
    ADDRESS 	 HASH_VALUE SQL_ID	  CHILD_NUMBER PREDICATE				  RANGE_ID LOW	      HIGH
    ---------------- ---------- ------------- ------------ ---------------------------------------- ---------- ---------- ----------
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     1 =VR						 0 0.000007   0.000017    --由于rtype=2的选择性不再0.00007~0.00008之间,所以生成新的子游标,由于新游标和旧游标的执行计划相同,所以进行合并,子游标0被设置为非共享,逐步淘汰出内存
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     0 =VR						 0 0.000007   0.000008
    
    SQL> exec :vr := 1
    
    PL/SQL 过程已成功完成。
    
    SQL> select /*+ bind_aware */ sum(id) from t1 where rtype = :vr;
    
       SUM(ID)
    ----------
    	 1
    
    SQL> @show_sql
    
    SQL_TEXT						     EXECUTIONS I I I
    ------------------------------------------------------------ ---------- - - -
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      2 Y Y Y   --使用新的子游标,不再使用0号子游标
    
    SQL> @sho_sel
    SP2-0310: 无法打开文件 "sho_sel.sql"
    SQL> @show_sel
    
    ADDRESS 	 HASH_VALUE SQL_ID	  CHILD_NUMBER PREDICATE				  RANGE_ID LOW	      HIGH
    ---------------- ---------- ------------- ------------ ---------------------------------------- ---------- ---------- ----------
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     1 =VR						 0 0.000007   0.000017
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     0 =VR						 0 0.000007   0.000008
    
    SQL> exec :vr := 3
    
    PL/SQL 过程已成功完成。
    
    SQL> select /*+ bind_aware */ sum(id) from t1 where rtype = :vr;
    
       SUM(ID)
    ----------
    	22
    
    SQL> @show_sql
    
    SQL_TEXT						     EXECUTIONS I I I
    ------------------------------------------------------------ ---------- - - -
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      2 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y Y
    
    SQL> @show_sel
    
    ADDRESS 	 HASH_VALUE SQL_ID	  CHILD_NUMBER PREDICATE				  RANGE_ID LOW	      HIGH
    ---------------- ---------- ------------- ------------ ---------------------------------------- ---------- ---------- ----------
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     2 =VR						 0 0.000007   0.000034
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     1 =VR						 0 0.000007   0.000017
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     0 =VR						 0 0.000007   0.000008
    
    SQL> exec :vr := 1
    
    PL/SQL 过程已成功完成。
    
    SQL> select /*+ bind_aware */ sum(id) from t1 where rtype = :vr;
    
       SUM(ID)
    ----------
    	 1
    
    SQL> @show_sql
    
    SQL_TEXT						     EXECUTIONS I I I
    ------------------------------------------------------------ ---------- - - -
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      2 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      2 Y Y Y
    
    SQL> exec :vr := 8
    
    PL/SQL 过程已成功完成。
    
    SQL> select /*+ bind_aware */ sum(id) from t1 where rtype = :vr;
    
       SUM(ID)
    ----------
         24512
    
    SQL> @show_sql
    
    SQL_TEXT						     EXECUTIONS I I I
    ------------------------------------------------------------ ---------- - - -
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      2 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      2 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y Y
    
    SQL> @show_sel
    
    ADDRESS 	 HASH_VALUE SQL_ID	  CHILD_NUMBER PREDICATE				  RANGE_ID LOW	      HIGH
    ---------------- ---------- ------------- ------------ ---------------------------------------- ---------- ---------- ----------
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     3 =VR						 0 0.000007   0.001074
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     2 =VR						 0 0.000007   0.000034
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     1 =VR						 0 0.000007   0.000017
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     0 =VR						 0 0.000007   0.000008
    
    SQL> exec :vr := 14
    
    PL/SQL 过程已成功完成。
    
    SQL> select /*+ bind_aware */ sum(id) from t1 where rtype = :vr;
    
       SUM(ID)
    ----------
     100659200
    
    SQL> @show_sql
    
    SQL_TEXT						     EXECUTIONS I I I
    ------------------------------------------------------------ ---------- - - -
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      2 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      2 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y Y
    
    SQL> @show_sel
    
    ADDRESS 	 HASH_VALUE SQL_ID	  CHILD_NUMBER PREDICATE				  RANGE_ID LOW	      HIGH
    ---------------- ---------- ------------- ------------ ---------------------------------------- ---------- ---------- ----------
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     4 =VR						 0 0.000007   0.068751
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     3 =VR						 0 0.000007   0.001074
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     2 =VR						 0 0.000007   0.000034
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     1 =VR						 0 0.000007   0.000017
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     0 =VR						 0 0.000007   0.000008
    
    SQL> exec :vr := 15
    
    PL/SQL 过程已成功完成。
    
    SQL> select /*+ bind_aware */ sum(id) from t1 where rtype = :vr;
    
       SUM(ID)
    ----------
    
    SQL> @show_sql
    
    SQL_TEXT						     EXECUTIONS I I I
    ------------------------------------------------------------ ---------- - - -
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      2 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      2 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y Y
    
    已选择6行。
    
    SQL> @show_sel
    
    ADDRESS 	 HASH_VALUE SQL_ID	  CHILD_NUMBER PREDICATE				  RANGE_ID LOW	      HIGH
    ---------------- ---------- ------------- ------------ ---------------------------------------- ---------- ---------- ----------
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     5 =VR						 0 0.000003   0.068751 --由于15不存在,所以选择性向下扩充
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     4 =VR						 0 0.000007   0.068751
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     3 =VR						 0 0.000007   0.001074
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     2 =VR						 0 0.000007   0.000034
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     1 =VR						 0 0.000007   0.000017
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     0 =VR						 0 0.000007   0.000008
    
    已选择6行。
    
    SQL> exec :vr := 17
    
    PL/SQL 过程已成功完成。
    
    SQL> select /*+ bind_aware */ sum(id) from t1 where rtype = :vr;
    
       SUM(ID)
    ----------
    8455659520
    
    SQL> @show_sql
    
    SQL_TEXT						     EXECUTIONS I I I
    ------------------------------------------------------------ ---------- - - -
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      2 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      2 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y N
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y Y
    select /*+ bind_aware */ sum(id) from t1 where rtype = :vr	      1 Y Y Y
    
    已选择7行。
    
    SQL> @show_sel
    
    ADDRESS 	 HASH_VALUE SQL_ID	  CHILD_NUMBER PREDICATE				  RANGE_ID LOW	      HIGH
    ---------------- ---------- ------------- ------------ ---------------------------------------- ---------- ---------- ----------
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     6 =VR						 0 0.787503   0.962503 --新的子游标的执行计划于旧子游标不同,所以均保留
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     5 =VR						 0 0.000003   0.068751
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     4 =VR						 0 0.000007   0.068751
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     3 =VR						 0 0.000007   0.001074
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     2 =VR						 0 0.000007   0.000034
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     1 =VR						 0 0.000007   0.000017
    00000000DD40C0E0 2679189014 082txyqgv2bhq	     0 =VR						 0 0.000007   0.000008
    
    已选择7行。
    
    로그인 후 복사
    由此可见,计算绑定变量的谓词选择性在bind_aware中扮演者重要角色
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

친구들과 wallpaperengine을 공유하는 방법 친구들과 wallpaperengine을 공유하는 방법 Mar 18, 2024 pm 10:00 PM

사용자는 WallpaperEngine을 사용할 때 얻은 배경화면을 친구들과 공유할 수 있습니다. 많은 사용자는 자신이 좋아하는 배경화면을 로컬에 저장한 다음 소셜 소프트웨어를 통해 친구들과 공유할 수 있습니다. wallpaperengine을 친구들과 공유하는 방법 답변: 로컬에 저장하고 친구들과 공유하세요. 1. 좋아하는 배경화면을 로컬에 저장한 다음 소셜 소프트웨어를 통해 친구들과 공유하는 것이 좋습니다. 2. 폴더를 통해 컴퓨터에 업로드한 후 컴퓨터의 창작 워크숍 기능을 사용하여 공유를 클릭할 수도 있습니다. 3. 컴퓨터에서 Wallpaperengine을 사용하고 크리에이티브 워크숍의 옵션 막대를 열고

WeChat Enterprise에서 화면을 공유하는 방법 WeChat Enterprise에서 화면을 공유하는 방법 Feb 28, 2024 pm 12:43 PM

점점 더 많은 기업이 독점 기업 WeChat을 선택하고 있습니다. 이는 기업과 고객, 파트너 간의 의사소통을 촉진할 뿐만 아니라 업무 효율성도 크게 향상시킵니다. Enterprise WeChat에는 풍부한 기능이 있으며 그 중 화면 공유 기능이 매우 인기가 있습니다. 회의 중에 화면을 공유함으로써 참가자들은 콘텐츠를 보다 직관적으로 표시하고 보다 효율적으로 협업할 수 있습니다. 그렇다면 WeChat Enterprise에서 화면을 효율적으로 공유하는 방법은 무엇입니까? 아직 모르는 사용자를 위해 이 튜토리얼 가이드가 도움이 되기를 바랍니다. WeChat Enterprise에서 화면을 공유하는 방법은 무엇입니까? 1. Enterprise WeChat 메인 인터페이스 왼쪽의 파란색 영역에 "컨퍼런스" 아이콘이 표시됩니다. 클릭하면 세 가지 컨퍼런스 모드가 나타납니다.

삼성 휴대폰에서 Quick Share 기능이 작동하지 않음 – 수정 삼성 휴대폰에서 Quick Share 기능이 작동하지 않음 – 수정 Sep 19, 2023 pm 04:25 PM

Quick Share를 사용하면 삼성 사용자가 장치 간에 파일을 전송하는 데 많은 시간을 절약할 수 있습니다. 그러나 삼성 갤럭시 사용자들은 휴대폰의 Quick Share 기능에 문제가 있다는 불만을 제기해 왔습니다. 일반적으로 빠른 공유의 가시성 문제로 인해 이 문제가 발생합니다. 따라서 이것은 Galaxy 장치의 Quick Share 기능 문제를 해결하는 데 필요한 유일한 가이드입니다. 수정 1 - 빠른 공유 가시성 설정 변경 휴대폰에서 빠른 공유 가시성 설정을 전환합니다. Quick Share가 잘못된 설정으로 설정되어 이 문제가 발생할 수 있습니다. 1단계 – 먼저 위로 한 번 스와이프하여 앱 서랍을 엽니다. 2단계 – 설정을 엽니다. 3단계 – 설정 페이지로 이동하여 연결된 장치 탭을 엽니다. 4단계 – “빠른 공유” 기능을 켭니다. 5단계

Windows 11 폴더 공유 가이드: 파일과 데이터를 쉽게 공유 Windows 11 폴더 공유 가이드: 파일과 데이터를 쉽게 공유 Mar 13, 2024 am 11:49 AM

일상 생활과 직장에서 우리는 종종 서로 다른 장치 간에 파일과 폴더를 공유해야 합니다. Windows 11 시스템에는 편리한 폴더 공유 기능이 내장되어 있어 개인 파일의 개인 정보를 보호하면서 동일한 네트워크 내에서 다른 사람들과 필요한 콘텐츠를 쉽고 안전하게 공유할 수 있습니다. 이 기능을 사용하면 개인 정보 유출에 대한 걱정 없이 파일을 간단하고 효율적으로 공유할 수 있습니다. Windows 11 시스템의 폴더 공유 기능을 통해 우리는 보다 편리하게 협력하고, 소통하고 협업할 수 있어 업무 효율성과 생활 편의성이 향상됩니다. 공유 폴더를 성공적으로 구성하려면 먼저 다음 조건을 충족해야 합니다. 공유에 참여하는 모든 장치가 동일한 네트워크에 연결되어 있습니다. 네트워크 검색을 활성화하고 공유를 구성합니다. 대상 장치를 알아라

iPhone iOS 17에서 NameDrop을 사용하는 방법 iPhone iOS 17에서 NameDrop을 사용하는 방법 Sep 22, 2023 pm 11:41 PM

새로운 Apple iPhone15 시리즈 휴대폰이 출시되고 최신 iOS17 모바일 운영 체제가 출시되면서 Apple 기기에 다양한 새로운 기능, 조정 및 개선 사항이 적용되었습니다. 사용자는 iPhone 및 iOS17에서 새로운 NameDrop 기능을 사용하는 방법을 궁금해할 수 있습니다. 이 가이드는 iOS17에서 사용할 수 있는 새로운 NameDrop 시스템을 사용하여 연락처 정보를 빠르고 효율적으로 공유하는 방법에 대한 간략한 개요를 제공합니다. NameDrop은 iPhone 사용자가 자신의 연락처 정보를 다른 사람과 빠르게 공유할 수 있는 기능입니다. 이는 새로운 친구들과 연락처 정보를 교환해야 하는 사교 행사, 비즈니스 미팅 또는 사교 모임을 위한 편리한 도구입니다. 그러나 NameDrop은 새 연락처를 보내는 데에만 작동한다는 점에 유의하는 것이 중요합니다.

공유 프린터를 프린터에 연결할 수 없습니다 공유 프린터를 프린터에 연결할 수 없습니다 Feb 22, 2024 pm 01:09 PM

디지털 시대의 발전과 함께 공유 프린터는 현대 사무 환경에서 없어서는 안 될 부분이 되었습니다. 그러나 때로는 공유 프린터를 프린터에 연결할 수 없는 문제가 발생할 수 있으며, 이는 작업 효율성에 영향을 미칠 뿐만 아니라 일련의 문제를 일으킬 수도 있습니다. 이 문서에서는 공유 프린터가 프린터에 연결할 수 없는 이유와 해결 방법을 살펴보는 것을 목표로 합니다. 공유 프린터가 프린터에 연결할 수 없는 데에는 여러 가지 이유가 있으며, 그 중 가장 일반적인 것은 네트워크 문제입니다. 공유 프린터와 프린터 간의 네트워크 연결이 불안정하거나 중단되는 경우 정상적인 작동이 불가능합니다.

iPhone의 연락처 사진 및 포스터의 개인정보를 보호하는 방법 iPhone의 연락처 사진 및 포스터의 개인정보를 보호하는 방법 Sep 18, 2023 am 10:49 AM

iPhone에서 연락처 사진과 포스터를 볼 수 있는 사람은 누구입니까? Apple은 다른 사람이 전화를 걸거나 메시지를 보낼 때 iPhone에 표시되는 방식을 개인화할 수 있는 옵션을 제공합니다. 옵션에는 미모티콘, 간단한 텍스트 또는 연락처 사진 및 표시 이미지로 효과가 있는 사용자 정의 사진이 포함됩니다. 언제든지 이러한 선택 사항을 자유롭게 변경하고 연락처 카드의 프로필 간에 전환할 수 있습니다. 또한 Apple은 iOS17에서 사진을 보고 액세스하거나 선택한 이미지를 표시할 수 있는 사람을 제어할 수 있는 기능을 제공합니다. 연락처 목록에 저장된 개인과 이를 공유하도록 결정하거나 연락처와 상호 작용할 때마다 메시지가 표시되도록 iPhone을 설정할 수 있습니다. 원하는 경우 이름을 영구적으로 비활성화할 수도 있습니다.

공유 폴더의 권한을 어디에서 설정합니까? Win10에서 공유 폴더의 권한을 읽기 전용으로 설정하고 수정할 수 없도록 하는 팁 공유 폴더의 권한을 어디에서 설정합니까? Win10에서 공유 폴더의 권한을 읽기 전용으로 설정하고 수정할 수 없도록 하는 팁 Feb 29, 2024 pm 03:43 PM

Win10에서 공유 폴더 읽기 전용 권한을 설정하는 방법은 무엇입니까? 호스트가 폴더를 공유한 후 일부 사용자는 다른 사람이 파일에 액세스하고 읽고 볼 수만 있기를 원하고 다른 사람이 호스트의 파일을 수정하는 것을 원하지 않습니다. 이 문서는 공유 폴더의 권한을 읽기 전용으로 설정하고 수정할 수 없도록 설정하는 방법에 대한 자습서입니다. 1. 먼저 일반 프로세스에 따라 폴더를 공유합니다. 호스트에서 공유해야 하는 폴더를 마우스 오른쪽 버튼으로 클릭하고 속성-공유-고급 공유-확인을 선택합니다. 2. 그런 다음 폴더 공유를 클릭합니다. 아래 권한 옵션은 기본적으로 모든 사람 계정을 추가합니다. 3. 아래의 읽기 권한만 확인한 다음 확인을 클릭합니다. 4. 속성 보안을 찾아 Ever를 추가합니다.

See all articles