aspnet的程序都是部署在服务器上的,也就是说你在浏览器上看到的任何东西都是你像服务器发送了一个>
首先是日期 Date: RFC 5322 日期格式
然后是收件人发件人段,“To:” 和 "From",以及抄送 "Cc:“ 和 "Bcc“
随后是“Message-ID: “,用于服务器在消息流通中不至于重复发送和存储,识别邮件的唯一性。
最后一段比较关键,格式类似于这样:
MIME-Version: 10\r\nContent-type: multipart/alternative; boundary=\"\(boundary)\"\r\n\r\n
意思是表示邮件采用MIME内容编码,可以是多个组成部分,由边界线boundary划分为多个数据区。数据区之间的内容可以是html或者普通文本(参考下列代码)关键是所有文本内容都是用 base64编码重新编排过,所以要用decode_base64解开才能读取。
f !textisEmpty {body += "--\(boundary)\r\nContent-Type: text/plain; charset=UTF-8; format=flowed\r\n\r\n\(text)\r\n\r\n"
}
if !contentisEmpty {
body += "--\(boundary)\r\nContent-Type: text/html;charset=UTF-8\r\n\r\n\(content)\r\n\r\n"
}
直接去解析是比较费劲的,因为其实整个编码都是采用了>
一、通过PL/SQL Dev工具
1、直接File->New->Explain Plan Window,在窗口中执行sql可以查看计划结果。其中,Cost表示cpu的消耗,单位为n%,Cardinality表示执行的行数,等价Rows。
2、先执行 EXPLAIN PLAN FOR select from tableA where paraA=1,再 select from table(DBMS_XPLANDISPLAY)便可以看到oracle的执行计划了,看到的结果和1中的一样,所以使用工具的时候推荐使用1方法。
注意:PL/SQL Dev工具的Command window中不支持set autotrance on的命令。还有使用工具方法查看计划看到的信息不全,有些时候我们需要sqlplus的支持。
二、通过sqlplus
1.最简单的办法
Sql> set autotrace on
Sql> select from dual;
执行完语句后,会显示explain plan 与 统计信息。
这个语句的优点就是它的缺点,这样在用该方法查看执行时间较长的sql语句时,需要等待该语句执行成功后,才返回执行计划,使优化的周期大大增长。如果不想执行语句而只是想得到执行计划可以采用:
Sql> set autotrace traceonly
这样,就只会列出执行计划,而不会真正的执行语句,大大减少了优化时间。虽然也列出了统计信息,但是因为没有执行语句,所以该统计信息没有用处,如果执行该语句时遇到错误,解决方法为:
(1)在要分析的用户下:
Sqlplus > @
dbmsadminutlxplansql
(2) 用sys用户登陆
Sqlplus > @ sqlplusadminplustrcesql
Sqlplus > grant plustrace to user_name;
- - user_name是上面所说的分析用户
2.用explain plan命令
(1) sqlplus > explain plan for select from testdbmyuser
(2) sqlplus > select from table(dbms_xplandisplay);
上面这2种方法只能为在本会话中正在运行的语句产生执行计划,即我们需要已经知道了哪条语句运行的效率很差,我们是有目的只对这条SQL语句去优化。其实,在很多情况下,我们只会听一个客户抱怨说现在系统运行很慢,而我们不知道是哪个SQL引起的。此时有许多现成的语句可以找出耗费资源比较多的语句,如:
SELECT ADDRESS, substr(SQL_TEXT,1,20) Text, buffer_gets, executions,
buffer_gets/executions AVG FROM v$sqlarea
WHERE executions>0 AND buffer_gets > 100000 ORDER BY 5;
ADDRESS TEXT BUFFER_GETS EXECUTIONS AVG
-------- ---------------------------------------- ----------- ---------- ------------------------------------------------------------
66D83D64 select tname, (sel 421531 60104 701336017
66D9E8AC select tschema, tn 1141739 2732 417913250
66B82BCC select ssynonym_nam 441261 6 735435
从而对找出的语句进行进一步优化。当然我们还可以为一个正在运行的会话中运行的所有SQL语句生成执行计划,这需要对该会话进行跟踪,产生trace文件,然后对该文件用tkprof程序格式化一下,这种得到执行计划的方式很有用,因为它包含其它额外信息,如SQL语句执行的每个阶段(如Parse、Execute、Fetch)分别耗费的各个资源情况(如CPU、DISK、elapsed等)。
3、启用SQL_TRACE跟踪所有后台进程活动:
全局参数设置: OracleHome/admin/SID/pfile中指定: SQL_TRACE = true (10g)
当前session中设置:
SQL> alter session set SQL_TRACE=true;
SQL> select from dual;
SQL> alter session set SQL_TRACE=false;
对其他用户进行跟踪设置:
SQL> select sid,serial#,username from v$session where username='XXX';
SID SERIAL# USERNAME
------ ---------- ------------------
127 31923 A
128 54521 B
开启跟踪:SQL> exec dbms_systemset_SQL_TRACE_in_session(127,31923,true);
关闭跟踪:SQL> exec dbms_systemset_SQL_TRACE_in_session(127,31923,false);
然后使用oracle自带的tkprof命令行工具格式化跟踪文件。
4、使用10046事件进行查询:
10046事件级别:
Lv1 - 启用标准的SQL_TRACE功能,等价于SQL_TRACE
Lv4 - Level 1 + 绑定值(bind values)
Lv8 - Level 1 + 等待事件跟踪
Lv12 - Level 1 + Level 4 + Level 8
全局设定:
OracleHome/admin/SID/pfile中指定: EVENT="10046 trace name context forever,level 12"
当前session设定:
开启:SQL> alter session set events '10046 trace name context forever, level 8';
关闭:SQL> alter session set events '10046 trace name context off';
对其他用户进行设置:
SQL> select sid,serial#,username from v$session where username='XXX';
SID SERIAL# USERNAME
------ ---------- ------------------
127 31923 A
SQL> exec dbms_systemset_ev(127,31923,10046,8,'A');
5、使用tkprof格式化跟踪文件: (根据下面SQL语句得到的文件都不存在该目录下,郁闷啊,懵懂啊)
一般,一次跟踪可以分为以下几步:
1、界定需要跟踪的目标范围,并使用适当的命令启用所需跟踪。
2、经过一段时间后,停止跟踪。此时应该产生了一个跟踪结果文件。
3、找到跟踪文件,并对其进行格式化,然后阅读或分析。
--使用一下SQL找到当前session的跟踪文件:
SELECT dvalue|| '/' ||lower(rtrim(iinstance, chr( 0 )))|| '_ora_' ||pspid|| 'trc' trace_file_namefrom( select pspid from v$mystat m,v$session s, v$process pwhere mstatistic# = 1 and ssid = msid and paddr = spaddr) p,( select tinstance from v$thread t,v$parameter vwhere vname = 'thread' and (vvalue = 0 or tthread# = to_number(vvalue))) i,( select value from v$parameter where name = 'user_dump_dest' ) d;-- 其它用户的 session SELECT dvalue|| '/' ||lower(rtrim(iinstance, chr( 0 )))|| '_ora_' ||pspid|| 'trc' trace_file_name from ( select pspid from v$session s, v$process p where ssid= '27' and s SERIAL#= '30' and paddr = spaddr) p, ( select tinstance from v$thread t,v$parameter v where vname = 'thread' and (vvalue = 0 or tthread# = to_number(vvalue))) i, ( select value from v$parameter where name = 'user_dump_dest' ) d;
--查找后使用tkprof命令,将TRACE文件格式为到D盘的explain_formattxt文件中
SQL> $tkprof d:/oracle/admin/FZLGFM/udump/fzlgfm_ora_3468trc d:/explain_formattxt
文件内容大致如下(看不太懂懵懂啊天啊神啊过几时就懂了/////////////)
TKPROF: Release 92010 - Production on 星期二 4月 20 13:59:20 2010
Copyright (c) 1982, 2002, Oracle Corporation All rights reserved
Trace file: d:/oracle/admin/FZLGFM/udump/fzlgfm_ora_3468trc
Sort options: default
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
alter session set events '10046 trace name context forever, level 8'
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 0 000 000 0 0 0 0
Execute 1 000 000 0 0 0 0
Fetch 0 000 000 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 1 000 000 0 0 0 0
Misses in library cache during parse: 0
Misses in library cache during execute: 1
Optimizer goal: CHOOSE
Parsing user id: SYS
商业模式的定义:一个商业模式描述的是一个组织创造、传递以及获得价值的基本原理。
这种定义方式可以成为一种通用语言,使你得以简单地描述和 *** 控商业模式以创造新的战略选择。离开了这样一种通用的语言,很难系统地去挑战某一个商业模式假设并成功地创造一个新的模式。我们相信要描述一个商业模式,可以很好地通过构成它所需的九大模块来完成,这九大模块可以展示出一家公司寻求利润的逻辑过程。这九大模块涵盖了一个商业体的四个主要部分:客户、产品或服务、基础设施以及金融能力。商业模式就像一幅战略蓝图,可以通过组织框架、组织流程及组织系统来实施。
有兴趣的话可以了解商业模式画布,是帮助企业自下而上提升组织团队商业能力以应对业务增长挑战的可视化工具,它透过有机组合商业模式的九个构成要素,可视化呈现一个公司如何生存并持续赚钱的背后逻辑与运作机制。学习商业画布可以让业务人员从产品思维转向商业思维,增强商业洞察力,提升商业全局观,促进业务协同。
至于如何使用的话,我建议你可以去看书或者上培训课,现在有蛮多机构在教这个的。我之前的话是在BCC兴远咨询公司学习的,公司统一安排培训,效果很显著。现在我可以用商业画布来梳理个人简历、拿来做客户沟通与给报价的工具、拿来个人或者与伙伴一起梳理问题解决路径、用于构思文章打草稿。。。如果你有兴趣,自己可以去了解哦。
碰巧我有这么一个函数
有点长,,不过,绝对能用
const py: array[216247] of string = (
{216}'CJWGNSPGCGNESYPB' + 'TYYZDXYKYGTDJNMJ' + 'QMBSGZSCYJSYYZPG' +
{216}'KBZGYCYWYKGKLJSW' + 'KPJQHYZWDDZLSGMR' + 'YPYWWCCKZNKYDG',
{217}'TTNJJEYKKZYTCJNM' + 'CYLQLYPYQFQRPZSL' + 'WBTGKJFYXJWZLTBN' +
{217}'CXJJJJZXDTTSQZYC' + 'DXXHGCKBPHFFSSYY' + 'BGMXLPBYLLLHLX',
{218}'SPZMYJHSOJNGHDZQ' + 'YKLGJHXGQZHXQGKE' + 'ZZWYSCSCJXYEYXAD' +
{218}'ZPMDSSMZJZQJYZCD' + 'JEWQJBDZBXGZNZCP' + 'WHKXHQKMWFBPBY',
{219}'DTJZZKQHYLYGXFPT' + 'YJYYZPSZLFCHMQSH' + 'GMXXSXJJSDCSBBQB' +
{219}'EFSJYHXWGZKPYLQB' + 'GLDLCCTNMAYDDKSS' + 'NGYCSGXLYZAYBN',
{220}'PTSDKDYLHGYMYLCX' + 'PYCJNDQJWXQXFYYF' + 'JLEJBZRXCCQWQQSB' +
{220}'ZKYMGPLBMJRQCFLN' + 'YMYQMSQYRBCJTHZT' + 'QFRXQHXMJJCJLX',
{221}'QGJMSHZKBSWYEMYL' + 'TXFSYDSGLYCJQXSJ' + 'NQBSCTYHBFTDCYZD' +
{221}'JWYGHQFRXWCKQKXE' + 'BPTLPXJZSRMEBWHJ' + 'LBJSLYYSMDXLCL',
{222}'QKXLHXJRZJMFQHXH' + 'WYWSBHTRXXGLHQHF' + 'NMCYKLDYXZPWLGGS' +
{222}'MTCFPAJJZYLJTYAN' + 'JGBJPLQGDZYQYAXB' + 'KYSECJSZNSLYZH',
{223}'ZXLZCGHPXZHZNYTD' + 'SBCJKDLZAYFMYDLE' + 'BBGQYZKXGLDNDNYS' +
{223}'KJSHDLYXBCGHXYPK' + 'DQMMZNGMMCLGWZSZ' + 'XZJFZNMLZZTHCS',
{224}'YDBDLLSCDDNLKJYK' + 'JSYCJLKOHQASDKNH' + 'CSGANHDAASHTCPLC' +
{224}'PQYBSDMPJLPCJOQL' + 'CDHJJYSPRCHNKNNL' + 'HLYYQYHWZPTCZG',
{225}'WWMZFFJQQQQYXACL' + 'BHKDJXDGMMYDJXZL' + 'LSYGXGKJRYWZWYCL' +
{225}'ZMSSJZLDBYDCPCXY' + 'HLXCHYZJQSQQAGMN' + 'YXPFRKSSBJLYXY',
{226}'SYGLNSCMHCWWMNZJ' + 'JLXXHCHSYD CTXRY' + 'CYXBYHCSMXJSZNPW' +
{226}'GPXXTAYBGAJCXLYS' + 'DCCWZOCWKCCSBNHC' + 'PDYZNFCYYTYCKX',
{227}'KYBSQKKYTQQXFCWC' + 'HCYKELZQBSQYJQCC' + 'LMTHSYWHMKTLKJLY' +
{227}'CXWHEQQHTQHZPQSQ' + 'SCFYMMDMGBWHWLGS' + 'LLYSDLMLXPTHMJ',
{228}'HWLJZYHZJXHTXJLH' + 'XRSWLWZJCBXMHZQX' + 'SDZPMGFCSGLSXYMJ' +
{228}'SHXPJXWMYQKSMYPL' + 'RTHBXFTPMHYXLCHL' + 'HLZYLXGSSSSTCL',
{229}'SLDCLRPBHZHXYYFH' + 'BBGDMYCNQQWLQHJJ' + 'ZYWJZYEJJDHPBLQX' +
{229}'TQKWHLCHQXAGTLXL' + 'JXMSLXHTZKZJECXJ' + 'CJNMFBYCSFYWYB',
{230}'JZGNYSDZSQYRSLJP' + 'CLPWXSDWEJBJCBCN' + 'AYTWGMPABCLYQPCL' +
{230}'ZXSBNMSGGFNZJJBZ' + 'SFZYNDXHPLQKZCZW' + 'ALSBCCJXJYZHWK',
{231}'YPSGXFZFCDKHJGXD' + 'LQFSGDSLQWZKXTMH' + 'SBGZMJZRGLYJBPML' +
{231}'MSXLZJQQHZSJCZYD' + 'JWBMJKLDDPMJEGXY' + 'HYLXHLQYQHKYCW',
{232}'CJMYYXNATJHYCCXZ' + 'PCQLBZWWYTWBQCML' + 'PMYRJCCCXFPZNZZL' +
{232}'JPLXXYZTZLGDLDCK' + 'LYRLZGQTGJHHGJLJ' + 'AXFGFJZSLCFDQZ',
{233}'LCLGJDJCSNCLLJPJ' + 'QDCCLCJXMYZFTSXG' + 'CGSBRZXJQQCTZHGY' +
{233}'QTJQQLZXJYLYLBCY' + 'AMCSTYLPDJBYREGK' + 'JZYZHLYSZQLZNW',
{234}'CZCLLWJQJJJKDGJZ' + 'OLBBZPPGLGHTGZXY' + 'GHZMYCNQSYCYHBHG' +
{234}'XKAMTXYXNBSKYZZG' + 'JZLQJDFCJXDYGJQJ' + 'JPMGWGJJJPKQSB',
{235}'GBMMCJSSCLPQPDXC' + 'DYYKYWCJDDYYGYWR' + 'HJRTGZNYQLDKLJSZ' +
{235}'ZGZQZJGDYKSHPZMT' + 'LCPWNJAFYZDJCNMW' + 'ESCYGLBTZCGMSS',
{236}'LLYXQSXSBSJSBBGG' + 'GHFJLYPMZJNLYYWD' + 'QSHZXTYYWHMCYHYW' +
{236}'DBXBTLMSYYYFSXJC' + 'SDXXLHJHF SXZQHF' + 'ZMZCZTQCXZXRTT',
{237}'DJHNNYZQQMNQDMMG' + 'LYDXMJGDHCDYZBFF' + 'ALLZTDLTFXMXQZDN' +
{237}'GWQDBDCZJDXBZGSQ' + 'QDDJCMBKZFFXMKDM' + 'DSYYSZCMLJDSYN',
{238}'SPRSKMKMPCKLGDBQ' + 'TFZSWTFGGLYPLLJZ' + 'HGJJGYPZLTCSMCNB' +
{238}'TJBQFKTHBYZGKPBB' + 'YMTDSSXTBNPDKLEY' + 'CJNYCDYKZDDHQH',
{239}'SDZSCTARLLTKZLGE' + 'CLLKJLQJAQNBDKKG' + 'HPJTZQKSECSHALQF' +
{239}'MMGJNLYJBBTMLYZX' + 'DCJPLDLPCQDHZYCB' + 'ZSCZBZMSLJFLKR',
{240}'ZJSNFRGJHXPDHYJY' + 'BZGDLJCSEZGXLBLH' + 'YXTWMABCHECMWYJY' +
{240}'ZLLJJYHLGBDJLSLY' + 'GKDZPZXJYYZLWCXS' + 'ZFGWYYDLYHCLJS',
{241}'CMBJHBLYZLYCBLYD' + 'PDQYSXQZBYTDKYYJ' + 'YYCNRJMPDJGKLCLJ' +
{241}'BCTBJDDBBLBLCZQR' + 'PPXJCGLZCSHLTOLJ' + 'NMDDDLNGKAQHQH',
{242}'JHYKHEZNMSHRP QQ' + 'JCHGMFPRXHJGDYCH' + 'GHLYRZQLCYQJNZSQ' +
{242}'TKQJYMSZSWLCFQQQ' + 'XYFGGYPTQWLMCRNF' + 'KKFSYYLQBMQAMM',
{243}'MYXCTPSHCPTXXZZS' + 'MPHPSHMCLMLDQFYQ' + 'XSZYJDJJZZHQPDSZ' +
{243}'GLSTJBCKBXYQZJSG' + 'PSXQZQZRQTBDKYXZ' + 'KHHGFLBCSMDLDG',
{244}'DZDBLZYYCXNNCSYB' + 'ZBFGLZZXSWMSCCMQ' + 'NJQSBDQSJTXXMBLT' +
{244}'XZCLZSHZCXRQJGJY' + 'LXZFJPHYXZQQYDFQ' + 'JJLZZNZJCDGZYG',
{245}'CTXMZYSCTLKPHTXH' + 'TLBJXJLXSCDQXCBB' + 'TJFQZFSLTJBTKQBX' +
{245}'XJJLJCHCZDBZJDCZ' + 'JDCPRNPQCJPFCZLC' + 'LZXBDMXMPHJSGZ',
{246}'GSZZQLYLWTJPFSYA' + 'SMCJBTZYYCWMYTCS' + 'JJLQCQLWZMALBXYF' +
{246}'BPNLSFHTGJWEJJXX' + 'GLLJSTGSHJQLZFKC' + 'GNNDSZFDEQFHBS',
{247}'AQTGYLBXMMYGSZLD' + 'YDQMJJRGBJTKGDHG' + 'KBLQKBDMBYLXWCXY' +
{247}'TTYBKMRTJZXQJBHL' + 'MHMJJZMQASLDCYXY' + 'QDLQCAFYWYXQHZ'
);
function ChnPy(Value: array of char): Char;
begin
Result := #0;
case Byte(Value[0]) of
176:
case Byte(Value[1]) of
161196: Result := 'A';
197254: Result := 'B';
end; {case}
177:
Result := 'B';
178:
case Byte(Value[1]) of
161192: Result := 'B';
193205: Result := 'C';
206: Result := 'S'; //参
207254: Result := 'C';
end; {case}
179:
Result := 'C';
180:
case Byte(Value[1]) of
161237: Result := 'C';
238254: Result := 'D';
end; {case}
181:
Result := 'D';
182:
case Byte(Value[1]) of
161233: Result := 'D';
234254: Result := 'E';
end; {case}
183:
case Byte(Value[1]) of
161: Result := 'E';
162254: Result := 'F';
end; {case}
184:
case Byte(Value[1]) of
161192: Result := 'F';
193254: Result := 'G';
end; {case}
185:
case Byte(Value[1]) of
161253: Result := 'G';
254: Result := 'H';
end; {case}
186:
Result := 'H';
187:
case Byte(Value[1]) of
161246: Result := 'H';
247254: Result := 'J';
end; {case}
188190:
Result := 'J';
191:
case Byte(Value[1]) of
161165: Result := 'J';
166254: Result := 'K';
end; {case}
192:
case Byte(Value[1]) of
161171: Result := 'K';
172254: Result := 'L';
end; {case}
193:
Result := 'L';
194:
case Byte(Value[1]) of
161231: Result := 'L';
232254: Result := 'M';
end; {case}
195:
Result := 'M';
196:
case Byte(Value[1]) of
161194: Result := 'M';
195254: Result := 'N';
end; {case}
197:
case Byte(Value[1]) of
161181: Result := 'N';
182189: Result := 'O';
190254: Result := 'P';
end; {case}
198:
case Byte(Value[1]) of
161217: Result := 'P';
218254: Result := 'Q';
end; {case}
199:
Result := 'Q';
200:
case Byte(Value[1]) of
161186: Result := 'Q';
187245: Result := 'R';
246254: Result := 'S';
end; {case}
201202:
Result := 'S';
203:
case Byte(Value[1]) of
161249: Result := 'S';
250254: Result := 'T';
end; {case}
204:
Result := 'T';
205:
case Byte(Value[1]) of
161217: Result := 'T';
218254: Result := 'W';
end; {case}
206:
case Byte(Value[1]) of
161243: Result := 'W';
244254: Result := 'X';
end; {case}
207208:
Result := 'X';
209:
case Byte(Value[1]) of
161184: Result := 'X';
185254: Result := 'Y';
end; {case}
210211:
Result := 'Y';
212:
case Byte(Value[1]) of
161208: Result := 'Y';
209254: Result := 'Z';
end; {case}
213215:
Result := 'Z';
216247:
Result := py[Byte(Value[0])][Byte(Value[1]) - 160];
end; {case}
end;
function TitemMagChnToPY(Value: string): string;
var
I, L: Integer;
C: array[01] of char;
R: Char;
begin
Result := '';
L := Length(Value);
I := 1;
while I <= (L - 1) do
begin
if Value[I] < #160 then
begin
Result := Result + Value[I];
Inc(I);
end
else
begin
C[0] := Value[I];
C[1] := Value[I + 1];
R := ChnPY(C);
if r <> #0 then
Result := Result + R;
Inc(I, 2);
end;
end;
if I = L then
Result := Result + Value[L];
end;
以上就是关于几道ASP.net 选择题,请哪位高手帮忙解答全部的内容,包括:几道ASP.net 选择题,请哪位高手帮忙解答、c++语言pop3协议得到的邮件内容怎么解析、oracle sql的执行计划如何查看等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)