cursor_sharing=similar参数引起version_count high|libra
开发的同事反应系统特别慢,基本是hang住的状态。 SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Producti
开发的同事反应系统特别慢,基本是hang住的状态。<br>
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL> select event,count(*) from v$session where wait_class
'Idle' group by event;
EVENT COUNT(*)
---------------------------------------- ----------
asynch descriptor resize 1
cursor: mutex S 1
library cache: mutex X 2
library cache lock 150
SQL> !uptime
13:58:46 up 275 days, 14:54, 20 users, load average: 73.46, 69.75, 67.47
SQL> !vmstat -n 3 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
21 0 179128 21864 19620 4764460 0 0 219 59 0 0 3 0 94 3 0
9 0 179128 20936 19636 4764480 0 0 11 41 2686 8128 91 1 8 0 0
9 0 179128 17012 19636 4761136 0 0 0 64 2240 7314 89 2 9 0 0
51 2 179128 20020 19676 4755980 0 0 535 156 2550 6650 63 3 31 2 0
59 3 179128 17240 19700 4755192 0 0 696 27 1840 7343 71 4 23 2 0
Extra information that will be dumped at higher levels:
[level 4] : 4 node dumps -- [LEAF] [LEAF_NW]
[level 5] : 156 node dumps -- [NO_WAIT] [INVOL_WT] [SINGLE_NODE] [NLEAF] [SINGLE_NODE_NW]
State of ALL nodes
([nodenum]/cnode/sid/sess_srno/session/ospid/state/[adjlist]):
[12]/1/13/30534/0x145dc5c70/6571/NLEAF/[22*]
[20]/1/21/49911/0x145dba2b0/32225/NLEAF/[22*]
[22]/1/23/59451/0x145db7440/29667/NLEAF/[1390][1376][397][986]
[27]/1/28/51814/0x142df11f8/3185/NLEAF/[22*]
[37]/1/38/5525/0x142de29c8/3818/NLEAF/[22*]
[38]/1/39/61201/0x145da00c0/29405/NLEAF/[22*]
[41]/1/42/48315/0x142ddcce8/3888/NLEAF/[22*]
[43]/1/44/53494/0x142dd9e78/2915/NLEAF/[22*]
[45]/1/46/7972/0x142dd7008/3782/NLEAF/[22*]
[46]/1/47/55253/0x145d94700/29419/NLEAF/[22*]
[48]/1/49/2059/0x145d91890/3874/NLEAF/[22*]
[53]/1/54/232/0x142dcb648/3806/NLEAF/[22*]
[57]/1/58/1001/0x142dc5968/3946/NLEAF/[22*]
[60]/1/61/536/0x145d801f0/29571/NLEAF/[22*]
[61]/1/62/18036/0x142dbfc88/29477/NLEAF/[22*]
[62]/1/63/33331/0x145d7d380/29495/NLEAF/[22*]
[63]/1/64/172/0x142dbce18/3932/NLEAF/[22*]
[66]/1/67/295/0x145d776a0/32698/NLEAF/[22*]
[67]/1/68/1178/0x142db7138/3194/NLEAF/[22*]
[209]/1/210/37201/0x142f135b8/3864/NLEAF/[22*]
[210]/1/211/1116/0x145ed0cb0/6567/NLEAF/[22*]
[214]/1/215/43363/0x145ecafd0/3780/NLEAF/[22*]
[216]/1/217/52931/0x145ec8160/3778/NLEAF/[22*]
[217]/1/218/57913/0x142f07bf8/3850/NLEAF/[22*]
[219]/1/220/43817/0x142f04d88/3842/NLEAF/[22*]
[223]/1/224/1162/0x142eff0a8/2489/NLEAF/[22*]
[225]/1/226/1793/0x142efc238/3948/NLEAF/[22*]
[226]/1/227/63937/0x145eb9930/3903/NLEAF/[22*]
[229]/1/230/54968/0x142ef6558/6549/NLEAF/[22*]
[232]/1/233/43293/0x145eb0de0/3934/NLEAF/[22*]
[233]/1/234/65252/0x142ef0878/3936/NLEAF/[22*]
[235]/1/236/10319/0x142eeda08/3798/NLEAF/[22*]
[238]/1/239/10942/0x145ea8290/3804/NLEAF/[22*]
[239]/1/240/31890/0x142ee7d28/3163/NLEAF/[22*]
[240]/1/241/1880/0x145ea5420/3854/NLEAF/[22*]
[242]/1/243/1693/0x145ea25b0/3820/NLEAF/[22*]
[243]/1/244/157/0x142ee2048/29497/NLEAF/[22*]
[248]/1/249/666/0x145e99a60/2460/NLEAF/[22*]
[249]/1/250/39835/0x142ed94f8/3970/NLEAF/[22*]
[250]/1/251/199/0x145e96bf0/3816/NLEAF/[22*]
[252]/1/253/141/0x145e93d80/3972/NLEAF/[22*]
[253]/1/254/832/0x142ed3818/3890/NLEAF/[22*]
…
[1399]/1/1400/1510/0x1416211c0/3814/NLEAF/[22*]
[1401]/1/1402/463/0x14161e350/3145/NLEAF/[22*]
*** 2014-07-28 13:52:17.778
===============================================================================
END OF HANG ANALYSIS
===============================================================================
*** 2014-07-28 13:52:17.785
===============================================================================
HANG ANALYSIS DUMPS:
oradebug_node_dump_level: 3
===============================================================================
State of LOCAL nodes
Os层面kill掉部blocking spid后,又出现了新的blocking spid,这个过程持续了几个小时,我们来看看到底是什么object引起的library cache lock。
查看了这个父游标的version_count达到了1278个
SQL> select version_count from v$sqlarea where sql_id='90qwy5xcku4v5';
VERSION_COUNT
-------------
1278
sql_id='90qwy5xcku4v5'的sql_text:
SELECT message1_.MESSAGEID AS MESSAGEID,
message1_.CHANNELID AS CHANNELID,
message1_.KEYWORD AS KEYWORD,
message1_.MESSAGETOPIC AS MESSAGET4_,
message1_.MESSAGEBODY AS MESSAGEB5_,
message1_.MESSAGEURL AS MESSAGEURL,
message1_.MESSAGEACTION AS MESSAGEA7_,
message1_.MESSAGETYPE AS MESSAGET8_,
message1_.MESSAGELEVEL AS MESSAGEL9_,
message1_.MESSAGESTATUS AS MESSAGE10_,
message1_.CREATER AS CREATER,
message1_.BEGINDATE AS BEGINDATE,
message1_.ENDDATE AS ENDDATE,
message1_.CREATEDATE AS CREATEDATE,
message1_.ATTACHEMENTNAME AS ATTACHE15_,
message1_.READFLAG AS READFLAG,
message1_.BUSINESSID AS BUSINESSID
FROM TBL_MSG_USER_MESSAGE usermessag0_, TBL_MSG_MESSAGE message1_
WHERE (usermessag0_.READSTATUS = :"SYS_B_0")
AND (usermessag0_.CUSTOMERNO = :"SYS_B_1")
AND (usermessag0_.MESSAGEID = message1_.MESSAGEID)
AND (message1_.BEGINDATE
AND (message1_.ENDDATE > :"SYS_B_3")
[oracle@zrdb-2 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Jul 28 14:33:30 2014
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> show parameter cursor_sharing;
NAME
------------------------------------
TYPE
----------------------------------------------------------------
VALUE
------------------------------
cursor_sharing
string
SIMILAR
问了下开发人员,有没有写成上述绑定变量的sql语句,开发人员反馈没有,那么这个问题可能是这样引起的,因为修改参数cursor_sharing从exact变为了similar后,导致了sql语句被重新改写成bind value的形式,按理说这个应该是为了减少硬解析,但是确造成了version_count high现象,也就是一个父游标下多个子游标,造成了library cache latch、library cache lock,library cache pin等等待时间。
High Version Count with CURSOR_SHARING = SIMILAR or FORCE (文档 ID 261020.1)
? Significant database time spent waiting for library cache latch
? High parse rates in AWR/Statspack reports
? High version counts in AWR/Statspack reports
? cursor_sharing = SIMILAR
? Intermittent database-wide slowdowns
? STATSPACK, AWR or V$SQLAREA shows a high version count on cursors that have bind replacement done due to CURSOR_SHARING=SIMILAR or FORCE.
? V$SQL_SHARED_CURSOR does not show any reason why this is happening.
? the number of children could keep on increasing until the shared pool is filled. In some cases, if the number gets past 1024 a new hash value is created for the next set of 1024.
High version counts can easily cause high contention for library cache latches. A process parsing a SQL statement with many versions (children cursors) will need to scan
through all these children while holding on to a library cache latch. This means that other processes needing the same latch will have to wait and can lead to significant database-wide performance degradation.
Changes:
CURSOR_SHARING has been changed to SIMILAR or FORCE.
Cause:
SELECT sql_text,version_count,address
FROM V$SQLAREA
WHERE sql_text like 'select /* TEST */%';
SQL_TEXT
---------------------------------------------------------------------------
VERSION_COUNT ADDRESS
------------- --------
select /* TEST */ * from emp where sal > :"SYS_B_0"
5 80EE4BF0
SELECT * FROM V$SQL_SHARED_CURSOR WHERE kglhdpar = '80EE4BF0';
ADDRESS KGLHDPAR U S O O S L S E B P I S T A B D L T R I I R L I O S M U T
-------- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
80FBD50C 80EE4BF0 N N N N N N N N N N N N N N N N N N N N N N N N N N N N N
80EE816C 80EE4BF0 N N N N N N N N N N N N N N N N N N N N N N N N N N N N N
....
If CURSOR_SHARING=SIMILAR, this could be expected behavior.
The difference between SIMILAR and FORCE is that SIMILAR forces similar statements to share the SQL area without deteriorating execution plans.
SIMILAR causes statements that may differ in some literals, but are otherwise identical, to share a cursor, unless the literals affect either the meaning of the statement or the degree to which the plan is optimized. In this case the literal is marked "unsafe" to be shared and the cursor will not be shared.
In the above example, the literal which is being replaced in the predicate:
sal > :"SYS_B_0"
is unsafe because the execution plan depends on its value.
Why Do Statements Using Literals Not Share When Cursor_Sharing=Similar? (文档 ID 364845.1)
Inequality & cursor_sharing = SIMILAR example
? Starting with cursor_sharing = similar run a SQL with a literal.
The literal will be replaces with a bind due to 'similar':
alter session set cursor_sharing = similar;
Session altered.
select count(*) from t1 where i > 10;
COUNT(*)
----------
9990
select sql_text,version_count
from v$sqlarea
where sql_text like 'select count(*) from t1 where%';
SQL_TEXT VERSION_COUNT
-------------------------------------------- ---------------
select count(*) from t1 where i > :"SYS_B_0" 1
Query results in a single version in the shared pool with a generated bind for the value: :"SYS_B_0".
? Same query run with a different literal:
select count(*) from t1 where i > 20;
COUNT(*)
----------
9980
SQL_TEXT VERSION_COUNT
-------------------------------------------- ---------------
select count(*) from t1 where i > :"SYS_B_0" 2
2
Notice we now have a second version of the cursor for the second value
? If we try with another couple of different literals:
select count(*) from t1 where i > 30;
COUNT(*)
----------
9970
SQL_TEXT VERSION_COUNT
-------------------------------------------- ---------------
select count(*) from t1 where i > :"SYS_B_0" 3
select count(*) from t1 where i > 40;
COUNT(*)
----------
9960
SQL_TEXT VERSION_COUNT
-------------------------------------------- ---------------
select count(*) from t1 where i > :"SYS_B_0" 4
? So cursor_sharing = SIMILAR does not share cursor when inequality predicates are used
Inequality & cursor_sharing = FORCE example
? Set cursor_sharing = FORCE
Restart Database
SQL> alter session set cursor_sharing = force;
Session altered.
SQL> select count(*) from t1 where i > 10;
COUNT(*)
----------
9990
SQL> select sql_text,version_count from v$sqlarea where
2 sql_text like 'select count(*) from t1 where%';
SQL_TEXT VERSION_COUNT
-------------------------------------------- ---------------
select count(*) from t1 where i > :"SYS_B_0" 1
The first time the version count is the same as with the SIMILAR example
? However with subsequent different values the same cursor is used:
SQL> select count(*) from t1 where i > 20;
COUNT(*)
----------
9980
SQL_TEXT VERSION_COUNT
-------------------------------------------- ---------------
select count(*) from t1 where i > :"SYS_B_0" 1
SQL> select count(*) from t1 where i > 30;
COUNT(*)
----------
9970
SQL_TEXT VERSION_COUNT
-------------------------------------------- ---------------
select count(*) from t1 where i > :"SYS_B_0" 1
SQL> select count(*) from t1 where i > 40;
COUNT(*)
----------
9960
SQL_TEXT VERSION_COUNT
-------------------------------------------- ---------------
select count(*) from t1 where i > :"SYS_B_0" 1
Note that with FORCE, the version count remains at 1 meaning that the cursor is shared even with inequality predicate when cursor_sharing = FORCE .
通过上面两篇mos的文章我们基本清楚了,当cursor_sharing=similar时,对于非等的谓词比较,优化器会产生多个子游标(version_count high),也就造成了每次解析sql时都需要遍历这个父游标下的子游标的,其实也就造成了library cache latch、library cache pin、library cache lock等等待事件。
下面对cursor_sharing参数进行一些简单的测试:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE 10.2.0.4.0 Production
TNS for Linux: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 – Production
SQL> create table t as select * from dba_objects;
Table created.
SQL> alter session set cursor_sharing='similar';
Session altered.
SQL> select /*TEST*/ object_name from t where object_id=10;
OBJECT_NAME
--------------------------------------------------------------------------------
C_USER#
SQL> select /*TEST*/ object_name from t where object_id=11;
OBJECT_NAME
--------------------------------------------------------------------------------
I_USER#
SQL> select /*TEST*/ object_name from t where object_id=12;
OBJECT_NAME
--------------------------------------------------------------------------------
FET$
SQL> select sql_text,version_count,address from v$sqlarea where sql_text like 'select /*TEST*/ object_name from t%';
SQL_TEXT
--------------------------------------------------------------------------------
VERSION_COUNT ADDRESS
------------- ----------------
select /*TEST*/ object_name from t where object_id=:"SYS_B_0"
3 000000008F8982C8
SQL> alter system flush shared_pool;
System altered.
SQL> select /*TEST*/ object_name from t where object_id
OBJECT_NAME
--------------------------------------------------------------------------------
I_OBJ#
I_FILE#_BLOCK#
I_TS#
C_TS#
CLU$
C_FILE#_BLOCK#
C_OBJ#
TAB$
8 rows selected.
SQL> select /*TEST*/ object_name from t where object_id
OBJECT_NAME
--------------------------------------------------------------------------------
I_OBJ#
I_TS#
C_TS#
CLU$
C_FILE#_BLOCK#
C_OBJ#
TAB$
7 rows selected.
SQL> select /*TEST*/ object_name from t where object_id
OBJECT_NAME
--------------------------------------------------------------------------------
I_OBJ#
I_TS#
C_TS#
CLU$
C_OBJ#
TAB$
6 rows selected.
SQL> select sql_text,version_count,address from v$sqlarea where sql_text like 'select /*TEST*/ object_name from t%';
SQL_TEXT
--------------------------------------------------------------------------------
VERSION_COUNT ADDRESS
------------- ----------------
select /*TEST*/ object_name from t where object_id<:> 3 000000008F5051F0
这里发现在oracle 10.2.0.4版本中无论是谓词等值还是非等值比较,即使谓词的列的值不影响sql的执行计划,也会产生多个子游标。
而如果到11.2.0.3的版本中:
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
SQL> show parameter cursor_sharing;
NAME TYPE
------------------------------------ --------------------------------
VALUE
------------------------------
cursor_sharing string
similar
SQL> select /*TEST*/ object_name from t_ora11g where object_id=10;
OBJECT_NAME
--------------------------------------------------------------------------------
C_USER#
SQL> select /*TEST*/ object_name from t_ora11g where object_id=11;
OBJECT_NAME
--------------------------------------------------------------------------------
I_USER#
SQL> select /*TEST*/ object_name from t_ora11g where object_id=12;
OBJECT_NAME
--------------------------------------------------------------------------------
FET$
SQL> select sql_text,version_count,address from v$sqlarea where sql_text like 'select /*TEST*/ object_name from t_ora11g%';
SQL_TEXT
--------------------------------------------------------------------------------
VERSION_COUNT ADDRESS
------------- ----------------
select /*TEST*/ object_name from t_ora11g where object_id=:"SYS_B_0"
1 00000000903487D8
SQL> alter system flush shared_pool;
System altered.
SQL> create table t_ora11g as select * from dba_objects;
Table created.
SQL> select /*TEST*/ object_name from t_ora11g where object_id
OBJECT_NAME
--------------------------------------------------------------------------------
I_OBJ#
I_FILE#_BLOCK#
I_TS#
C_TS#
CLU$
C_FILE#_BLOCK#
C_OBJ#
TAB$
8 rows selected.
SQL> select /*TEST*/ object_name from t_ora11g where object_id
OBJECT_NAME
--------------------------------------------------------------------------------
I_OBJ#
I_TS#
C_TS#
CLU$
C_FILE#_BLOCK#
C_OBJ#
TAB$
7 rows selected.
SQL> select /*TEST*/ object_name from t_ora11g where object_id
OBJECT_NAME
--------------------------------------------------------------------------------
I_OBJ#
I_TS#
C_TS#
CLU$
C_OBJ#
TAB$
6 rows selected.
SQL> select sql_text,version_count,address from v$sqlarea where sql_text like 'select /*TEST*/ object_name from t_ora11g%';
SQL_TEXT
--------------------------------------------------------------------------------
VERSION_COUNT ADDRESS
------------- ----------------
select /*TEST*/ object_name from t_ora11g where object_id<:>
1 000000009914E3E8
在11.2.0.3版本的cursor_sharing=similar情况下,oracle对于等值和非等值的谓词比较对应的父游标的version_count都为1。
由于上述生产系统出现version_count较高的版本是oracle 11.2.0.1的版本,又找了一个11.2.0.1的版本进行测试
SQL> create table t as select * from dba_objects;
Table created.
SQL> alter session set cursor_sharing='similar';
Session altered.
SQL> select /*TEST*/ object_name from t where object_id=10;
OBJECT_NAME
--------------------------------------------------------------------------------
C_USER#
SQL> select /*TEST*/ object_name from t where object_id=11;
OBJECT_NAME
--------------------------------------------------------------------------------
I_USER#
SQL> select /*TEST*/ object_name from t where object_id=12;
OBJECT_NAME
--------------------------------------------------------------------------------
FET$
SQL> select sql_text,version_count,address from v$sqlarea where sql_text like 'select /*TEST*/ object_name from t%';
SQL_TEXT
--------------------------------------------------------------------------------
VERSION_COUNT ADDRESS
------------- ----------------
select /*TEST*/ object_name from t where object_id=:"SYS_B_0"
3 0000000117B10050
SQL> create table t_inequ as select * from dba_Objects;
Table created.
SQL> select /*TEST*/ object_name from t_inequ where object_id
OBJECT_NAME
--------------------------------------------------------------------------------
I_OBJ#
I_FILE#_BLOCK#
I_TS#
C_TS#
CLU$
C_FILE#_BLOCK#
C_OBJ#
TAB$
8 rows selected.
SQL> select /*TEST*/ object_name from t_inequ where object_id
OBJECT_NAME
--------------------------------------------------------------------------------
I_OBJ#
I_FILE#_BLOCK#
I_TS#
C_TS#
CLU$
C_FILE#_BLOCK#
C_USER#
C_OBJ#
TAB$
9 rows selected.
SQL> select /*TEST*/ object_name from t_inequ where object_id
OBJECT_NAME
--------------------------------------------------------------------------------
I_OBJ#
I_FILE#_BLOCK#
I_TS#
C_TS#
CLU$
C_FILE#_BLOCK#
C_USER#
C_OBJ#
TAB$
I_USER#
10 rows selected.
SQL> select sql_text,version_count,address from v$sqlarea where sql_text like 'select /*TEST*/ object_name from t_inequ%';
SQL_TEXT
--------------------------------------------------------------------------------
VERSION_COUNT ADDRESS
------------- ----------------
select /*TEST*/ object_name from t_inequ where object_id<:>
3 00000000FFF17EB8
看来这个和oracle 10.2.0.4版本一样,都存在上述的问题,这个也是我们在网络上看见很多文章或者案例提到cursor_sharing设置为similar和force带来的隐患,有很多的类似的oracle bug,所以这里我们需要将参数cursor_sharing设置为exact或者force即可,而关于为什么子游标不共享,可以参考v$sql_shared_cursor视图。
原文地址:cursor_sharing=similar参数引起version_count high|libra, 感谢原作者分享。

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











PHP5.4 버전의 새로운 기능: 호출 가능 유형 힌트 매개변수를 사용하여 호출 가능 함수 또는 메소드를 허용하는 방법 소개: PHP5.4 버전에는 매우 편리한 새 기능이 도입되었습니다. 호출 가능 유형 힌트 매개변수를 사용하여 호출 가능 함수 또는 메소드를 허용할 수 있습니다. 이 새로운 기능을 사용하면 함수와 메서드가 추가 확인 및 변환 없이 해당 호출 가능 매개변수를 직접 지정할 수 있습니다. 이 기사에서는 호출 가능 유형 힌트의 사용을 소개하고 몇 가지 코드 예제를 제공합니다.

제품 매개변수는 제품 속성의 의미를 나타냅니다. 예를 들어 의류 매개변수에는 브랜드, 소재, 모델, 크기, 스타일, 직물, 적용 그룹, 색상 등이 포함됩니다. 식품 매개변수에는 브랜드, 중량, 재료, 건강 허가 번호, 적용 그룹, 색상 등이 포함됩니다. 브랜드, 크기, 색상, 원산지, 적용 가능한 전압, 신호, 인터페이스 및 전원 등이 포함됩니다.

i9-12900H는 14코어 프로세서로, 사용된 아키텍처와 기술이 모두 새롭고, 전반적인 작업이 매우 뛰어나며, 특히 포괄적이며 사용자에게 뛰어난 경험을 제공할 수 있습니다. . i9-12900H 매개변수 평가 검토: 1. i9-12900H는 14코어 프로세서로, q1 아키텍처와 24576kb 프로세스 기술을 채택하고 20스레드로 업그레이드되었습니다. 2. 최대 CPU 주파수는 1.80!5.00ghz이며 주로 작업량에 따라 다릅니다. 3. 가격에 비해 가격 대비 성능이 매우 적합하며 정상적인 사용이 필요한 일부 파트너에게 매우 적합합니다. i9-12900H 매개변수 평가 및 성능 벤치마크

개발 과정에서 다음과 같은 오류 메시지가 나타날 수 있습니다: PHPWarning: in_array()expectsparameter. 이 오류 메시지는 in_array() 함수를 사용할 때 나타나는데, 이는 함수의 잘못된 매개변수 전달로 인해 발생할 수 있습니다. 이 오류 메시지에 대한 해결 방법을 살펴보겠습니다. 먼저 in_array() 함수의 역할을 명확히 해야 합니다. 즉, 배열에 값이 존재하는지 확인해야 합니다. 이 함수의 프로토타입은 다음과 같습니다: in_a

C++ 매개변수 유형 안전성 검사는 함수가 컴파일 시간 검사, 런타임 검사 및 정적 어설션을 통해 예상된 유형의 값만 허용하도록 보장하여 예기치 않은 동작 및 프로그램 충돌을 방지합니다. 컴파일 시간 유형 검사: 컴파일러가 유형 호환성을 검사합니다. 런타임 유형 검사: 동적_캐스트를 사용하여 유형 호환성을 확인하고 일치하는 항목이 없으면 예외를 발생시킵니다. 정적 어설션: 컴파일 타임에 유형 조건을 어설션합니다.

쌍곡선 함수는 원 대신 쌍곡선을 사용하여 정의되며 일반 삼각 함수와 동일합니다. 제공된 각도(라디안)에서 쌍곡사인 함수의 비율 매개변수를 반환합니다. 그러나 반대로 하십시오. 즉, 반대로 하십시오. 쌍곡선 사인으로부터 각도를 계산하려면 쌍곡선 역사인 연산과 같은 역쌍곡선 삼각법 연산이 필요합니다. 이 과정에서는 라디안 단위의 쌍곡선 사인 값을 사용하여 각도를 계산하기 위해 C++에서 쌍곡선 역사인(asinh) 함수를 사용하는 방법을 보여줍니다. 쌍곡선 아크사인 연산은 다음 공식 -$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})}을 따릅니다. 여기서\:In\:은\:자연 로그\:(log_e\:k)

win10 시스템을 사용하는 많은 친구들이 v2004 푸시를 받았지만 어떤 업데이트가 포함되어 있는지 알지 못합니다. 오늘은 win10v2004 업데이트에 대한 자세한 내용을 가져왔습니다. win10v2004에서 업데이트된 내용: 1. Win10v2004는 많은 콘텐츠를 업데이트하고 긴 문제 목록을 수정했습니다. 2. 가장 확실한 것은 사용자가 특정 구성에서 응용 프로그램 창의 크기를 줄이지 못하는 문제를 해결하는 것입니다. 3. Win10 시스템에서는 "DolbyAtmosforHeadphones" 및 "DTSHeadphone:X"에 대한 지원이 활성화된다는 점도 지적되었습니다. 4. 또한 windowsupdate에서 발생할 수 있는 문제도 해결합니다.

LLM(Large Language Model)은 강력한 성능을 갖고 있지만 매개변수의 수는 쉽게 수백억, 수천억에 달할 수 있고 컴퓨팅 장비와 메모리에 대한 수요도 일반 기업이 감당할 수 없을 만큼 크다. 양자화는 모델 가중치의 정확도(예: 32비트를 8비트로)를 줄여 추론 속도를 높이고 메모리 요구 사항을 줄이는 대신 일부 모델 성능을 희생하는 일반적인 압축 작업입니다. 그러나 1,000억 개 이상의 매개변수가 있는 LLM의 경우 기존 압축 방법으로는 모델의 정확성을 유지할 수 없으며 하드웨어에서 효율적으로 실행할 수도 없습니다. 최근 MIT와 NVIDIA의 연구원들은 범용 사후 훈련 양자화(GPQ)를 공동으로 제안했습니다.
