61阅读

联想r400笔记本参数-笔记51-徐 参数嗅探 Parameter Sniffing

发布时间:2017-11-24 所属栏目:联想笔记本键盘字母变数字

一 : 笔记51-徐 参数嗅探 Parameter Sniffing

笔记51-徐 参数嗅探 Parameter Sniffing 

1 --参数嗅探 Parameter Sniffing 2013-2-8 2 3 --当使用存储过程的时候,总是要使用到一些变量。(www.61k.com)变量有两种,一种 4 --是在存储过程的外面定义的。当调用存储过程的时候,必须要给他代入 5 --值。这种变量,SQL在编译的时候知道他的值是多少。 6 7 --例如: 8 USE [AdventureWorks] 9 GO 10 DROP PROC Sniff 11 GO 12 CREATE PROC Sniff(@i INT) 13 AS 14 SELECT COUNT(b.[SalesOrderID]),SUM(p.[Weight]) 15 FROM [dbo].[SalesOrderHeader_test] a 16 INNER JOIN [dbo].[SalesOrderDetail_test] b 17 ON a.[SalesOrderID]=b.[SalesOrderID] 18 INNER JOIN [Production].[Product] p 19 ON b.[ProductID]=p.[ProductID] 20 WHERE a.[SalesOrderID]=@i 21 GO 22 23 --这里的变量@i,就是要在调用的时候代入值的 24 EXEC [dbo].[Sniff] @i = 50000 -- int 25 GO 26 27 28 --还有一种变量是在存储过程里面定义的。他的值在存储过程的语句执行的过程中得到的。 29 --所以对这种本地变量,SQL在编译的时候不知道他的值是多少。 30 --例如: 31 USE [AdventureWorks] 32 GO 33 DROP PROC Sniff2 34 GO 35 CREATE PROC Sniff2(@i INT) 36 AS 37 DECLARE @j INT 38 SET @j=@i 39 SELECT COUNT(b.[SalesOrderID]),SUM(p.[Weight]) 40 FROM [dbo].[SalesOrderHeader_test] a 41 INNER JOIN [dbo].[SalesOrderDetail_test] b 42 ON a.[SalesOrderID]=b.[SalesOrderID] 43 INNER JOIN [Production].[Product] p 44 ON b.[ProductID]=p.[ProductID] 45 WHERE a.[SalesOrderID]=@j 46 GO 47 48 EXEC [dbo].[Sniff2] @i = 500000 -- int 49 GO 50 51 52 53 --这里的变量@j,是SQL在运行的过程中算出来的 54 --已经谈到过多次,SQL在处理存储过程的时候,为了节省编译时间, 55 --是一次编译,多次重用的。用sp_executesql的方式调用的指令也是 56 --这样。那么执行计划重用就有两个潜在问题 57 58 59 --(1)对于第一类变量,根据第一次运行时代入的值生成的执行计划,是不是 60 --就能够适合所有可能的变量值呢? 61 62 63 --(2)对于第二类本地变量,SQL在编译的时候并不知道他的值是多少,那怎么 64 --选择“合适”的执行计划呢? 65 66 --对于第一个问题,会引出对 “参数嗅探”问题的定义。而对于第二个问题,本节 67 --将介绍使用本地变量对执行计划选择的影响。最后介绍参数嗅探问题的候选 68 --解决方案 69 70 71 ------------------------------------------------------------------------ 72 --什么是参数嗅探 73 --带着第一个问题,请做下面这两个测试 74 --测试一: 75 USE [AdventureWorks] 76 GO 77 DBCC freeproccache 78 GO 79 EXEC [dbo].[Sniff] @i = 500000 -- int 80 --发生编译,插入一个使用nested loops联接的执行计划 81 GO 82 83 EXEC [dbo].[Sniff] @i = 75124 -- int 84 --发生执行计划重用,重用上面的nested loops的执行计划 85 GO 86 87 --测试二: 88 89 USE [AdventureWorks] 90 GO 91 DBCC freeproccache 92 GO 93 EXEC [dbo].[Sniff] @i = 75124 -- int 94 --发生编译,插入一个使用hash match联接的执行计划 95 GO 96 97 EXEC [dbo].[Sniff] @i = 50000 -- int 98 --发生执行计划重用,重用上面的hash match的执行计划 99 GO100 101 102 --从上面两个测试可以清楚地看到执行计划重用的副作用。由于数据分布差别很大103 --参数50000和75124只对自己生成的执行计划有好的性能,如果使用对方生成的104 --执行计划,性能就会下降。参数50000返回的结果集比较小,所以性能下降105 --不太严重。参数75124返回的结果集大,就有了明显的性能下降,两个执行计划106 --的差别有近10倍107 108 --对于这种因为重用他人生成的执行计划而导致的水土不服现象,SQL有一个专有109 --名词,叫“参数嗅探 parameter sniffing”是因为语句的执行计划对变量的值110 --很敏感,而导致重用执行计划会遇到性能问题111 112 113 --本地变量的影响114 --那对于有parameter sniffing问题的存储过程,如果使用本地变量,会怎样呢?115 --下面请看测试3。这次用不同的变量值时,都清空执行计划缓存,迫使其116 --重编译117 --第一次118 USE [AdventureWorks]119 GO120 DBCC freeproccache121 GO122 SET STATISTICS TIME ON123 SET STATISTICS PROFILE ON124 EXEC [dbo].[Sniff] @i = 50000 -- int125 GO126 ------------------------------127 --第二次128 USE [AdventureWorks]129 GO130 DBCC freeproccache131 GO132 SET STATISTICS TIME ON133 SET STATISTICS PROFILE ON134 EXEC [dbo].[Sniff] @i = 75124 -- int135 GO136 --------------------------------137 --第三次138 USE [AdventureWorks]139 GO140 DBCC freeproccache141 GO142 SET STATISTICS TIME ON143 SET STATISTICS PROFILE ON144 EXEC [dbo].[Sniff2] @i = 50000 -- int145 GO146 ---------------------------------147 --第四次148 USE [AdventureWorks]149 GO150 DBCC freeproccache151 GO152 SET STATISTICS TIME ON153 SET STATISTICS PROFILE ON154 EXEC [dbo].[Sniff2] @i = 75124 -- int155 GO156 157 158 --来看他们的执行计划:159 --对于第一句和第二句,因为SQL在编译的时候知道变量的值,所以在做EstimateRows的时候,160 --做得非常准确,选择了最适合他们的执行计划161 162 163 --但是对于第三句和第四句,SQL不知道@j的值是多少,所以在做EstimateRows的时候,164 --不管代入的@i值是多少,一律给@j一样的预测结果。所以两个执行计划是完全一样的。165 --这里EstimateRows的大小,在语句1和语句2的值之间,所以他选择的执行计划,和166 --语句1与语句2都不一样167 168 --我们再来比较一下不同执行计划下的速度169 --------------------------------------170 --第一次171 SQL Server 执行时间:172 CPU 时间 = 0 毫秒,占用时间 = 715 毫秒。173 174 SQL Server 执行时间:175 CPU 时间 = 16 毫秒,占用时间 = 1775 毫秒。176 --------------------------------------------177 --------------------------------------178 --第二次179 SQL Server 执行时间:180 CPU 时间 = 998 毫秒,占用时间 = 9821 毫秒。181 182 SQL Server 执行时间:183 CPU 时间 = 998 毫秒,占用时间 = 9906 毫秒。184 --------------------------------------------185 --------------------------------------186 --第三次187 SQL Server 执行时间:188 CPU 时间 = 15 毫秒,占用时间 = 57 毫秒。189 190 SQL Server 执行时间:191 CPU 时间 = 15 毫秒,占用时间 = 66 毫秒。192 --------------------------------------------193 --------------------------------------194 --第四次195 SQL Server 执行时间:196 CPU 时间 = 1981 毫秒,占用时间 = 6926 毫秒。197 198 SQL Server 执行时间:199 CPU 时间 = 1997 毫秒,占用时间 = 6933 毫秒。200 --------------------------------------------201 202 --有参数嗅探的情况,语句三和语句四作出来的执行计划是一种比较中庸的方法,不是最快的203 --也不是最慢的。他对语句性能的影响,一般不会有参数嗅探那么严重,他还是解决204 --参数嗅探的一个候选方案205 206 207 ---------------------------------------------------------------------------------208 --参数嗅探的解决方案209 210 --参数嗅探的问题发生的频率并不高,他只会发生在一些表格里的数据分布很不均匀,或者211 --用户带入的参数值很不均匀的情况下。例如,查询一个时间段数据的存储过程,如果212 --大部分用户都只查1天的数据,SQL缓存的也是这样的执行计划,那对于那些要查一年213 --的数据,可是SQL碰到“参数嗅探”问题的风险了。如果系统里大部分用户都要查一年的数据214 --可是SQL碰巧缓存了一个只查一天数据的存储过程,那大部分用户都会遇到“参数嗅探”的问题215 --这个对性能的影响就大了216 217 --有什么办法能够缓解,或者避免参数嗅探问题呢?在SQL2005以后,可以有很多种方法可供218 --选择219 220 --(1)用exec()的方式运行动态SQL221 --如果在存储过程里不是直接运行语句,而是把语句带上变量,生成一个字符串,再让exec()这样222 --的命令做动态语句运行,那SQL就会在运行到这句话的时候,对动态语句进行编译。这时SQL223 --已经知道了变量的值,会根据生成优化的执行计划,从而绕过参数嗅探问题224 225 --例如前面的存储过程Sniff,就可以改成这样226 USE [AdventureWorks]227 GO228 DROP PROC NOSniff229 GO230 CREATE PROC NOSniff(@i INT)231 AS232 DECLARE @cmd VARCHAR(1000)233 SET @cmd='SELECT COUNT(b.[SalesOrderID]),SUM(p.[Weight])234 FROM [dbo].[SalesOrderHeader_test] a235 INNER JOIN [dbo].[SalesOrderDetail_test] b236 ON a.[SalesOrderID]=b.[SalesOrderID]237 INNER JOIN [Production].[Product] p238 ON b.[ProductID]=p.[ProductID]239 WHERE a.[SalesOrderID]='240 EXEC(@cmd+@i)241 GO242 243 --然后再用上面的顺序调用会得到比他更好的性能244 245 USE [AdventureWorks]246 GO247 DBCC freeproccache248 GO249 SET STATISTICS TIME ON250 SET STATISTICS PROFILE ON251 EXEC [dbo].NOSniff @i = 50000 -- int252 GO253 --------------------------------254 USE [AdventureWorks]255 GO256 SET STATISTICS TIME ON257 SET STATISTICS PROFILE ON258 EXEC [dbo].NOSniff @i = 75124 -- int259 GO260 261 262 263 --使用exec()的方式产生动态编译264 --在查询语句执行之前,都能看见SP:CacheInsert事件。SQL做了动态编译,根据变量的值,265 --正确地估计出每一步的返回结果集大小。所以这两个执行计划,是完全不一样的266 267 --执行结果很快,这种方法的好处,是彻底避免参数嗅探问题。但缺点是要修改存储过程268 --的定义,而且放弃了存储过程一次编译,多次运行的优点,在编译性能上有所损失269 270 271 --(2)使用本地变量local variable272 --在前面,提到了如果把变量值赋给一个本地变量,SQL在编译的时候是没办法知道这个本地273 --变量的值的。所以他会根据表格里数据的一般分布情况,“猜测”一个返回值。不管用户274 --在调用存储过程的时候代入的变量值是多少,做出来的执行计划都是一样的。而这样275 --的执行计划一般比较“中庸”,不会是最优的执行计划,但是对大多数变量值来讲,也不会276 --是一个很差的执行计划277 278 --存储过程[Sniff2]就是这样一个例子279 --这种方法的好处,是保持了存储过程的优点,缺点是要修改存储过程,而且执行计划也不是280 --最优的281 282 283 284 --(3)在语句里使用query hint,指定执行计划285 --在select,insert,update,delete语句的最后,可以加一个"option(<query_hint>)"的子句286 --对SQL将要生成的执行计划进行指导。当DBA知道问题所在以后,可以通过加hint的方式,引导287 --SQL生成一个比较安全的,对所有可能的变量值都不差的执行计划288 289 --现在SQL的query hint还是很强大的,有十几种hint。完整的定义是:290 --msdn:http://msdn.microsoft.com/zh-cn/library/foo66fb1520-dcdf-4aab-9ff1-7de8f79e5b2d.aspx291 <query_hint > ::=292 { { HASH | ORDER } GROUP293 | { CONCAT | HASH | MERGE } UNION294 | { LOOP | MERGE | HASH } JOIN295 | FAST number_rows296 | FORCE ORDER297 | MAXDOP number_of_processors298 | OPTIMIZE FOR ( @variable_name = literal_constant [ , ...n ] )299 | PARAMETERIZATION { SIMPLE | FORCED }300 | RECOMPILE301 | ROBUST PLAN302 | KEEP PLAN303 | KEEPFIXED PLAN304 | EXPAND VIEWS305 | MAXRECURSION number306 | USE PLAN N'xml_plan'307 }308 309 310 --这些hint的用途不一样。有些是引导执行计划使用什么样的运算的,比如,311 -- | { CONCAT | HASH | MERGE } UNION312 -- | { LOOP | MERGE | HASH } JOIN313 314 --有些是防止重编译的,例如315 -- | PARAMETERIZATION { SIMPLE | FORCED }316 -- | KEEP PLAN317 -- | KEEPFIXED PLAN318 319 320 --有些是强制重编译的,例如321 -- | RECOMPILE322 323 324 --有些是影响执行计划的选择的,例如325 --| FAST number_rows326 --| FORCE ORDER327 --| MAXDOP number_of_processors328 --| OPTIMIZE FOR ( @variable_name = literal_constant [ , ...n ] )329 330 --所以他们适合在不同的场合。具体的定义,请看SQL的联机帮助331 332 --为了避免参数嗅探的问题,有下面几种常见的query hint使用方法333 334 --(1)recompile335 --recompile这个查询提示告诉SQL,语句在每一次存储过程运行的时候,都要重新编译一下。336 --这样能够使SQL根据当前变量的值,选一个最好的执行计划。对前面的那个例子,我们可以337 --这样写338 USE [AdventureWorks]339 GO340 DROP PROC NoSniff_QueryHint_Recompile341 GO342 CREATE PROC NoSniff_QueryHint_Recompile(@i INT)343 AS344 SELECT COUNT(b.[SalesOrderID]),SUM(p.[Weight])345 FROM [dbo].[SalesOrderHeader_test] a346 INNER JOIN [dbo].[SalesOrderDetail_test] b347 ON a.[SalesOrderID]=b.[SalesOrderID]348 INNER JOIN [Production].[Product] p349 ON b.[ProductID]=p.[ProductID]350 WHERE a.[SalesOrderID]=@i351 OPTION(RECOMPILE)352 GO353 354 --------------------------------------355 USE [AdventureWorks]356 GO357 DBCC freeproccache358 GO359 EXEC NoSniff_QueryHint_Recompile 50000360 GO361 -------------------------------------362 USE [AdventureWorks]363 GO364 EXEC NoSniff_QueryHint_Recompile 75124365 GO366 367 368 --在SQL Trace里我们能够看到,语句运行之前,都会有一个SQL:StmtRecompile的事件发生369 --而使用的执行计划,就是最准确的那种370 --和这种方法类似,是在存储过程的定义里直接指定“recompile”,也能达到避免371 --参数嗅探的效果372 373 USE [AdventureWorks]374 GO375 DROP PROC NoSniff_SPCreate_Recompile376 GO377 CREATE PROC NoSniff_SPCreate_Recompile(@i INT)378 WITH RECOMPILE379 AS380 SELECT COUNT(b.[SalesOrderID]),SUM(p.[Weight])381 FROM [dbo].[SalesOrderHeader_test] a382 INNER JOIN [dbo].[SalesOrderDetail_test] b383 ON a.[SalesOrderID]=b.[SalesOrderID]384 INNER JOIN [Production].[Product] p385 ON b.[ProductID]=p.[ProductID]386 WHERE a.[SalesOrderID]=@i387 GO388 389 390 -------------------------------------------------391 USE [AdventureWorks]392 GO393 DBCC freeproccache394 GO395 EXEC NoSniff_SPCreate_Recompile 50000396 GO397 398 ------------------------------------------------399 USE [AdventureWorks]400 GO401 EXEC NoSniff_QueryHint_Recompile 75124402 GO403 404 405 --在SQL Trace里,我们能看到,存储过程在执行的时候已经找不到前面的执行计划406 --SP:CacheMiss,所以要生成新的。而使用的执行计划,就是最准确的那种407 408 --这两种“Recompile”提示的差别是,如果在语句层次指定OPTION(RECOMPILE),409 --那存储过程级别的计划重用还是会有的。只是在运行到那句话的时候,才会发生重编译。410 --如果存储过程里有if-else之类的逻辑,使得发生问题的语句没有执行到,那重编译就不会发生。411 --所以,这是一种问题精确定位后,比较精细的一种调优方法。如果在存储过程级别412 --指定WITH RECOMPILE,那整个存储过程在每次执行的时候都要重编译,这个重复工作量就比较大了413 --但是,如果问题没有精确定位,可以用这种方法快速缓解问题414 415 416 417 --(2)指定join运算 { LOOP | MERGE | HASH } JOIN418 --很多时候,参数嗅探问题是由于SQL对一个该用merge join/hash join的情况误用了419 --nested loops join。确定了问题后,当然可以用查询提示,指定语句里所有join方法。420 --但是这种方法一般很不推荐,因为不是所有的join,SQL都能够根据你给的提示做出来421 --执行计划的。如果对例子存储过程的那个查询最后加上“option(hash join)”,运行422 --的时候会返回这样的错误。SQL不接受这个查询提示:423 424 消息 8622,级别 16,状态 1,第 1 行425 由于此查询中定义了提示,查询处理器未能生成查询计划。请重新提交查询,426 并且不要在查询中指定任何提示,也不要使用 SET FORCEPLAN。427 428 429 --更常见的是,在特定的那个join上使用join hint。这种方法成功几率要高得多430 --例如:431 USE [AdventureWorks]432 GO433 DROP PROC NoSniff_QueryHint_JoinHint434 GO435 CREATE PROC NoSniff_QueryHint_JoinHint(@i INT)436 AS437 SELECT COUNT(b.[SalesOrderID]),SUM(p.[Weight])438 FROM [dbo].[SalesOrderHeader_test] a439 INNER JOIN [dbo].[SalesOrderDetail_test] b440 ON a.[SalesOrderID]=b.[SalesOrderID]441 INNER hash JOIN [Production].[Product] p442 ON b.[ProductID]=p.[ProductID]443 WHERE a.[SalesOrderID]=@i444 GO445 446 447 USE [AdventureWorks]448 GO449 DBCC freeproccache450 GO451 SET STATISTICS PROFILE ON452 GO453 EXEC NoSniff_QueryHint_JoinHint 50000454 GO455 ---------------------------------------------456 USE [AdventureWorks]457 GO458 SET STATISTICS PROFILE ON459 GO460 EXEC NoSniff_QueryHint_JoinHint 75124461 GO462 463 464 465 --这种方法的好处,是保持了存储过程一次编译,后续多次使用的特性,节省编译时间。466 --但是缺点也很明显,使用这样的方法生成执行计划,不一定就是一个好的执行计划467 --而且表格里的数据量变化以后,现在合适的join方式将来可能就不合适,到时候还会468 --造成性能问题,所以使用的时候要很小心469 470 471 472 473 --(3)OPTIMIZE FOR ( @variable_name = literal_constant [ , ...n ] )474 --当确认了参数嗅探问题后,发现,根据某些变量值生成的执行计划,快和慢会相差475 --很大,而根据另外一些变量生成的执行计划,性能在好和坏的时候,相差并不很大。476 --例如当变量等于50000的时候,他用最好的nested loops执行计划,用时十几毫秒,477 --用hash join的那个执行计划,也不过300多毫秒。但是变量等于75124的时候,478 --hash join执行计划需要500多毫秒,用nested loops的时候,要用4000多。479 --从绝对值来讲,让用户等几百毫秒一般是没问题的。但是等上几秒钟,就容易480 --收到抱怨了。所以hash join是一个比较“安全”的执行计划。如果SQL总是使用75124481 --这个值做执行计划,会对大部分查询都比较安全。482 483 --使用OPTIMIZE FOR这个查询指导,就能够让SQL做到这一点。这是SQL2005以后的一个新484 --功能。485 486 USE [AdventureWorks]487 GO488 DROP PROC NoSniff_QueryHint_OptimizeFor489 GO490 CREATE PROC NoSniff_QueryHint_OptimizeFor(@i INT)491 AS492 SELECT COUNT(b.[SalesOrderID]),SUM(p.[Weight])493 FROM [dbo].[SalesOrderHeader_test] a494 INNER JOIN [dbo].[SalesOrderDetail_test] b495 ON a.[SalesOrderID]=b.[SalesOrderID]496 INNER hash JOIN [Production].[Product] p497 ON b.[ProductID]=p.[ProductID]498 WHERE a.[SalesOrderID]=@i499 OPTION(optimize FOR(@i=75124))500 GO501 ---------------------------------502 USE [AdventureWorks]503 GO504 DBCC freeproccache505 GO506 SET STATISTICS PROFILE ON507 GO508 EXEC NoSniff_QueryHint_OptimizeFor 50000509 GO510 ---------------------------------------------511 USE [AdventureWorks]512 GO513 SET STATISTICS PROFILE ON514 GO515 EXEC NoSniff_QueryHint_OptimizeFor 75124516 GO517 518 519 --从SQL Trace里看,存储过程第一次运行时有编译,但是第二次就出现了执行计划重用520 --分析执行计划会发现SQL在第一次编译时,虽然变量值是50000,他还是根据75124521 --来做预估的,EstimateRows的值很大。正因为这样,第二次运行也有不错的性能522 523 --这种方法的优点是,既能够让SQL作出有倾向性的执行计划,又能保证SQL选择执行计划524 --时候的自由度,所以得到的执行计划一般是比较好的。相对于用join hint,这个方法525 --更精细一些。缺点是,如果表格里的数据分布发生了变化,比如用户有一天把526 --75124的记录全删除了,那SQL选择的执行计划就不一定继续正确了。所以他也有他527 --的局限性。528 529 530 --上面介绍的方法,都有一个明显的局限性,那就要去修改存储过程定义。有些时候没有531 --应用开发组的许可,修改存储过程是不可以的。对用sp_executesql的方式调用的指令,532 --问题更大。因为这些指令可能是写在应用程序里,而不是SQL里。DBA是没办法去修改533 --应用程序的。534 535 --好在SQL2005和2008里,引入和完善了一个种叫Plan Guide的功能。DBA可以告诉SQL,当536 --运行某一个语句的时候,请你使用我指定的执行计划。这样就不需要去修改存储过程或537 --应用了。538 539 540 541 --(4)Plan Guide542 --例如可以用下面的方法,在原来那个有参数嗅探问题的存储过程“Sniff”上,解决sniffing问题543 USE [AdventureWorks]544 GO545 EXEC [sys].[sp_create_plan_guide]546 @name=N'Guide1',547 @stmt=N'SELECT COUNT(b.[SalesOrderID]),SUM(p.[Weight])548 FROM [dbo].[SalesOrderHeader_test] a549 INNER JOIN [dbo].[SalesOrderDetail_test] b550 ON a.[SalesOrderID]=b.[SalesOrderID]551 INNER JOIN [Production].[Product] p552 ON b.[ProductID]=p.[ProductID]553 WHERE a.[SalesOrderID]=@i',554 @type=N'OBJECT',555 @module_or_batch=N'Sniff',556 @params=NULL,557 @hints=N'option(optimize for(@i=75124))';558 GO559 560 -----------------------------------561 USE [AdventureWorks]562 GO563 SET STATISTICS PROFILE ON564 GO565 DBCC freeproccache566 GO567 EXEC [dbo].[Sniff] @i = 50000 -- int568 GO569 570 --使用了75124的hash match的join方式571 572 --对于Plan Guide,他还可以使用在一般的语句调优里。在后面的章节会介绍573 574 575 -----------------------各种方法的比较-----------------------------------576 -- 方法 是否修改存储过程 是否每次运行都要重编译 执行计划准确度577 --用exec()方式运行动态SQL 需要 会 很准确578 --使用本地变量local variable 需要 不会 一般579 --query hint+"recompile" 需要 会 很准确580 --query hint指定join运算 需要 不会 很一般581 --query hint optimize for 需要 不会 比较准确582 --Plan Guide 不需要 不会 比较准确583 584 585 --DBA可以根据实际情况,选择对他最合适的解决方案

二 : 联想笔记本e43参数与测评介绍

随着科技的发展电脑等智能科技在生活中的作用越来越大,尤其是对商务人士来说,繁杂的商务数据和需要对市场的时事准确把握就更需要借助现代科技的力量,这时候一台好的商务笔记本就显得十分必要了。今天要介绍的一款商务笔记本品牌就是来自国产的联想笔记本e43,这款商务笔记本又有什么参数和测评口碑呢,接下来就一起来了解一下相关知识吧。

联想e43 联想笔记本e43参数与测评介绍

1.联想笔记本e43参数

联想业界领先的安全技术LTT为昭阳K43提供了基于物理、系统、身份、数据、网络五大方面的安全防护,为用户构建一个可信赖的移动计算平台。这款商务笔记本的“双重硬盘保护方案”就是在LTT安全技术的基础上经过进一步创新研发而成。联想笔记本e43采用的全新镁铝合金A面在减轻重量的同时,强度也有了进一步提高,大大提高了电脑的物理防护。然后,新版一键功能包括“一键恢复”、“一键修复”、“一键杀毒”三大功能。

联想e43 联想笔记本e43参数与测评介绍

基于人机工程学优化的全新键盘,在键程和键距上创造出舒适的敲击感觉,大大提高使用者的舒适度。独有的NOVO键,方便组合快捷键,轻松演绎多项功能。此外,这款笔记本在绿色环保方面也进行了很多关注健康的设计,整机通过国家CCC级测试整机、国家节能认证以及整机同时符合欧盟和中国ROHS标准等,这些在环保方面的设计很好的保护了使用者的健康。性能强劲的e43,为客户提供强大的运算能力。英特尔新一代“SantaRosa”移动计算平台和独立显存高达128M的高性能显卡赋予昭阳K强大的运算和显示能力,同时还为客户预装微软WindowsVista,展现完美视觉品质。

2.联想笔记本e43测评

联想笔记本e43上盖表面触摸起来很光滑,由于定位于商务机型,因此并没有采用钢琴漆面,所以现在令很多用户头疼的指纹问题都就不存在了。抗划伤以及普通性质的冲击对于讲究安全的联想来说自然是毫无问题的,不过相比较ThinkPad而言,上盖部分还是显得软了点,用手指压下,会有轻微形变。

联想e43 联想笔记本e43参数与测评介绍

为了尽量保持轻巧的前提下能够保证坚固,联想量身定做了一套玻璃纺织纤维打造的外壳。这样的外壳到底有多坚固那,之前联想在发布之处曾用重达300KG的小型越野车在笔记本上面压过,之后电脑还能正常开机,并且毫发未损,联想笔记本e43也延续了其不变的品质。

联想e43 联想笔记本e43参数与测评介绍

通过以上的介绍相信大家对联想笔记本e43的质量和测评参数也有了大致的了解,作为国内的主流笔记本电脑销售品牌,联想多年来积攒的消费者口碑还是比较值得信赖的。这款商务笔记本也采用了笔记本常用的风格,黑色的主打色不仅十分符合商务的沉稳气质,在安全信息方面也做了全面的提升,希望以上的介绍对想要了解联想这款手机的朋友提供一定的有效参考信息。

三 : 联想 S700:联想S700-基本参数,联想S700-正面外观

联想作为国产手机的领军企业,在2008年带来了许多既好看又实用的手机。也正是在去年,联想让我们改变了对国产机一味抄袭的印象,每一款都有着自身明显的特点,并且在做工的质量上也越来越精细,看不到以往国产手机粗制滥造的情况。说到S系列,我们就不得不说起名噪一时的联想S9,这是一款至今还能得到很多人钟爱的时尚机型,而现在将为大家介绍的S700则将时尚更进一步。

联想 S700:联想S700-基本参数,联想S700-正面外观_联想s700
联想 S700

联想s700_联想 S700 -基本参数

基本参数
型号 S700
手机类型音乐手机,拍照手机
上市时间 2009年
手机制式GSM
手机频段 GSM,GSM 900/1800
手机外形翻盖
主屏尺寸 2.6英寸
主屏材质 TFT 主屏色彩 彩屏,26万色
主屏参数 240×400像素(WQVGA),16:9宽屏
通话时间 120-240分钟
待机时间 100-150小时 外
壳颜色 银色
体积 102×47.55×17mm
重量 113克
基本功能
信息功能SMS短信,美眉S短信,短信群发
输入法 英文输入法,中文输入法
游戏 内置游戏
主要功能
内置天线,时钟,内置震动,待机图片 附加功能 闹钟,日历,计算器,日程表
数据应用功能
蓝牙 支持蓝牙 数据业务GPRS,EDGEJAVA支持Java 扩展卡 支持TF卡(microSD卡),支持5GB Micro SD卡扩展
多媒体娱乐功能
摄像头 内置摄像头 摄像头像素320万像素
传感器类型 CMOS传感器
闪光灯 内置闪光灯
拍摄特色自动对焦拍摄功能描述 支持自动对焦/全屏横屏取景5种照片尺寸/最高像素为2048×1536/支持自拍
视频拍摄 有声视频拍摄
MP3播放器 支持MP3播放,内置MP3播放器,支持MP3/AAC/AAC+/MID/WAV/ARM格式 视频播放 支持视频播放,支持
MPEG4、3GP等视频格式/支持全屏横屏流畅播放

联想s700_联想 S700 -正面外观

联想 S700:联想S700-基本参数,联想S700-正面外观_联想s700
联想 S700联想s700有4种不同的款式,蓝色代表的是春天,分红色代表的是夏天、黄色则是秋天,而白色当然就是冬天了,白色版,乍一看水晶般的3D浮雕确实给人1种冬季洁白的冰雪感,实际看上去更像让我们国人骄傲的水立方形状,十分的大气,时尚。
该机的三围是102×47.55×17mm,重量为113克,作为1款翻盖手机来说厚度刚刚好,整体握在手中有着不错的握持感。水泡图案的上方有镜面覆盖,所以看上去凹凸不平,但摸上去十分的光滑。值得一提的是在播放音乐或者来电之际,在浮雕上会产生灵动的光效——逐一的亮起来,很是动感。联想的银色LOGO 也竖着放置在那里,颜色搭配的比较协调。
在正面的上方有一条银色的分界线,把图案与顶端的播放快捷键分割开来,并且银线为中间凸起的设计,表面看上去可能是为了美观,不过实际它还有其它的作用,稍后为大家详解。播放快捷键为触控模式,也就是说没有键程,只需轻 轻触摸便会有相应的进程,而且还有振动的回馈,操作起来很舒服。

联想s700_联想 S700 -键盘及屏幕

联想 S700:联想S700-基本参数,联想S700-正面外观_联想s700
联想 S700翻开联想S700,依然是以白色为主色调,但我们发现该机与其它翻盖手机略有不同,那就是屏幕区与键盘区的角度,这是为什么呢?留在下节统一揭秘。2.6英寸的宽屏分辨率达到了WQVGA级别,可以显示26万色,整体屏幕显像的效果比较让人满意。镜面屏幕区的设计让指纹成为了不可避免的,所以要经常简单的 擦拭,要知道白色的手机可是需要好好照看的。屏幕上方的听筒,在接收方面没有发 现问题,通话音量很清晰。屏幕下方是银色的滚轴,和屏幕周边的颜色步调一致。
按键区的每个按键风格一致,白色的基底搭配上小小的好似冰珠一样的按键触点,给人1种说不出的美感。快捷键的配置也基本到位,左右软件 、音乐快捷键、上网键、接听和挂断键一应俱全。听筒被安排在了数字键“4”的左下方,这和联想S700修长的机身有关,这样的设计能够让用户得到更好的采音效果,可以说是该机人性化的体现。
按键的手感刚使用之际确实不够舒服,紧靠小触点来区别按键还真有些不适应。使用了一会后发现了联想S700按键的好用一面,只不过需要熟悉一段而已。该机的键程比较饱满,力回馈也做的比较到位,在发短信之际最好是 双手操作,这样的话才能让你有获得舒适的操作。

联想s700_联想 S700 -侧面细节

联想S700的周边颜色依然是银色和白色的分界搭配,看上去既个性又美观。在银色线条的上端能够发现1个“裂痕”,这正是该机的特色所在— —180度娱乐旋转屏。我们可以把屏幕向左旋转180度,然后配合正面的播放快捷键,再加上该机宽屏的效果,把手机组合成了1个便捷的多媒体播放器。注意的是不要转 错了屏幕的方向。
该机的侧面功能并不多,右侧为音量调节键和拍照快捷键的设计。音量调节键的位置比较适中,在通话过程中能够很容易的调整通话音量的大小。
具备自动对焦功能的摄像头,拍照快捷键的手感当然做的要好一些,这一点联想 S700没有让我们失望。更值得称赞的是,配合可旋转的屏幕,自拍起来更加的方便,比自拍镜要好用的多。
右侧有1个USB多功能插孔,依然是非标准的型号,用户使用之际需要原配的连接线,这点确实有一定的不便利性。看遍周边没有发现耳机插孔的设置,看来非标准的USB接口又要担当耳机插孔的任务了。

联想s700_联想 S700 -背面设计

联想 S700:联想S700-基本参数,联想S700-正面外观_联想s700
联想 S700联想S700的背面设计依然很低调,但不失冬天的韵味。上端是一颗320万像素的摄像头,支持自动对焦,并且在旁边配备了自拍镜。就摄像头的像素来说,确实要比以往同类型的手机有所提升,实际拍摄效果也很不错。
摄像头左右两端的独立扬声器确实够震撼,毕竟该机定位在娱乐上面,所以音质的好坏也是很重要。把铃声开到最大音量的话,实际分贝虽然说不准,不过保证你在上下班途中减少漏听的情况还是没有问题。
退下后盖是一块820mAh的锂电,在容量上我们看得 出要比以往的国产手机小了一些,在小编听歌20分钟、通话20分钟和短信20条的情况 下用了一天,只消耗了一格的电量(4格满),续航能力还算可以,维持2天多应该没有问题。另外SIM的拔出比较费力,需要一定的技巧才行,这点很让人遗憾。随机的赠 品有一张1GB的存储卡、两块820mAh的锂电、充电器、数据线以及一副专用接口的立体 声耳机。

联想s700_联想 S700 -界面基本设置

联想 S700:联想S700-基本参数,联想S700-正面外观_联想s700
界面前面已经说过了联想S700的外观,外观虽然是目前购机者非常重视的1个方面,但是机器的好与坏与内在功能和操作性也是分不开的,下面我们就来看一下联想S700在功能上都有哪些独到之处。
该机采用了一块可视面积为2.6英寸的WQVGA级别(分辨率为 240×400,也就是现在经常提到的16:9分辨率)该机内置了四种主题,分别为春樱、夏雨、秋叶和冬雪,同主题相辅相成的则是该机还具有4种颜色,分别为蓝色、粉色、黄色和白色。
虽然4款主题中的秋叶和春樱只是看起来颜色稍微有点改变,但其实在不同的菜单上还是有着不同的显示的,该机还支持自动更换主题,可以设置每小时、每天、每月以及每季,省去使用者不少麻烦。
同样是为了满足使用者的虚荣心,联想S700竟然还支持更换字体,虽然仅只是内置了2款不同字体,但是能换就真的很不错了,毕竟智能机想要更换字体都比较麻烦。上面已经说过该机的外屏幕具有多种灯光显示效果,这张截图则是该机的内置灯效清单,虽然没有自定义编辑,可多达五种的显示效果配合4种颜色和4种主题,相信每个人手中的S700都有着独到之处。

联想s700_联想 S700 -电话簿功能

联想 S700:联想S700-基本参数,联想S700-正面外观_联想s700
电话簿随着手机的发展,手机内置的功能越来越多,但是我们最长使用的当然还是手机的通话和短信功能,而联想S700在通话功能上也有着不同以往的设计内涵。该机同样支持名片式电话本存储,并支持拼音首字母查询。
手机支持设置主显示存储器,包括手机、sim卡 和手机+sim卡3种模式,看似简单的设计实际上却是我们离不开的,尤其是对于像我们这样总是换手机的人来说,支持显示SIM卡电话簿能够少去很多的复杂操作。
联想S700还具有一些智能手机才具有的功能,比如说重力感应系统的高级应用模式“来电翻转静音”就是其中之一,来电时只要顺手给手机翻个跟头,扰人的手机就安静了,很方便吧。而另1个智能功能则是该机支持防响一声电话,设置时间为1秒、3秒和5秒,这个功能是切实为国内用户设计的,非常不错。该机还支持iP拨号。

联想s700_联想 S700 -信息功能

联想 S700:联想S700-基本参数,联想S700-正面外观_联想s700
信息功能信息功能是手机功能上的另1个重点,虽然目前的主流手机都开始侧重娱乐功能而忽略了手机的通讯功能,但联想S700却并没有忽视,而这从上面的电话簿功能上我们已经能够看出端倪来,短信功能上,联想S700设置同样周到。
联想S700内置了智能拼音输入法,支持词组输入,但是不支持智能调节常用字。该机在短信界面上只要点击选项同样支持插入图片等彩信功能,也就是说想法彩信还是短信,只看内容而不是你所选择的项目。
该机还具有短信黑名单、短信签名和信息统计功能,相信能为您带来不错的使用感受。联想S700的短信功能到这里就介绍完了,我们应该能够发现,这款手机跟以往的联想手机有着很大的不同,切合使用者的实际应用出发,更加切合使用者的感受。

联想s700_联想 S700 -音乐功能

联想 S700:联想S700-基本参数,联想S700-正面外观_联想s700
音乐功能作为国产时尚类手机的先锋产品,联想S700怎么可能不支持音乐播放呢!S700内置了非常简约的音乐播放器,淡蓝色的界面看起来非常素雅,保证让你过目不忘。
S700的内置播放器支持歌词同步显示、具有可随音乐调节的频谱显示,同时还具有最具潮流的后台播放功能,即使玩手机游戏之际同样支持音乐播放。
联想S700支持MP3/AAC+/MID/WAV/ARM格式音乐播放、具有8种均衡器调节模式(标准、重低音、舞曲、古典乐、高音、宴会、流 行音乐、摇滚乐),并且还具有普通、单曲重复、全部重复、随机4种播放方式。支持旋转屏幕的它在翻转手机之后,外屏的音乐快捷键可快速启动音乐播放功能,而外屏上的炫酷灯光更可根据音乐播放节奏闪耀,绝对前卫时尚。联想S700还具有专业的音腔设计,能让使用者活动非同凡响的振憾音效。该机还支持蓝牙立体声耳机播放,摆脱耳机束缚。

联想s700_联想 S700 -拍照功能

联想 S700:联想S700-基本参数,联想S700-正面外观_联想s700
拍照功能联想S700还内置了一颗320万像素自动对焦摄像头,并具有LED补光灯支持,虽然没有自拍镜,但别忘记了该机的屏幕是支持旋转的,只要将屏幕旋转180度,2.6英寸的自拍镜可不是哪款手机都具有的吧。
从拍照界面截图中我们就能看出来,联想S700支持全屏幕式取景,并且还支持5种照片尺寸(最高像索为2048x1536),最多四倍数字变焦,可调整曝光补偿,5种白平衡模式,支持夜拍模式,最多可五张连拍,有3种快门声可选择;该机还具有有10种像框可选择设置。

联想s700_联想 S700 -游戏及JAVA测试

联想 S700:联想S700-基本参数,联想S700-正面外观_联想s700
游戏手机游戏在手机上的应用也越来越多,这款联想S700同样内置了多款好玩的游戏,有考操作性的,有重力感应的,当然还有纯属娱乐的,下面我们就来看一下该机的娱乐功能以及JAVA扩展能力。
联想S700一共内置了六款游戏,分别为德拉克传奇、平衡滚球、财神求签、美女餐厅、麻将连连看、对战麻将;从名字以及截图上我们就能发现,该机的每款游戏都非常有特色。尤其是平衡滚球和财神求签,2款游戏都是通过手机的内置重力感应器来玩的,乐趣十足。
通过专业测试JAVA能力软件JBenchmark1和2测出来的联想S700分数,从直观的分数上我们就能看出来,这款联想S700的JAVA扩展能力在国产非智能手机中属于上游产品,这点也是很让人欣慰的。

联想s700_联想 S700 -网络应用

联想 S700:联想S700-基本参数,联想S700-正面外观_联想s700
网络应用网络应用上,联想S700的表现力也不错。
既然联想S700是中国移动定制的“心机”,当然会内置一点中国移动的特色功能了。中国移动服务和客户服务就是这方便的2个最重要体现。下方的新世界属于新东西了,其实就是优酷网的手机客户端,浏览、上传都 非常方便。

联想s700_联想 S700 -附属功能

联想 S700:联想S700-基本参数,联想S700-正面外观_联想s700
附属功能联想S700还内置了一些其它类别的小工具软件, 例如说支持TXT格式文件直接阅读(也就是电子书功能)、支持照片后期编辑、具有闹 钟、日历、计算器、录音机等等小工具软件,保证你需要之际不至于手忙脚乱。
电子书功能上,联想S700为了照顾那些喜欢用手机看书的朋友,特意对其进行了优化,支持全屏显示、支持自行设置字体颜色和背景色,该机还支持自动浏览功能,而另我们感到稀奇的另1个设置式,该机支持的电子书的大小只受所剩内存的限制。

联想s700_联想 S700 -总结

优势评说:时尚外观设计、支持旋转屏幕、水钻式外观材质、闪亮精致、幻彩外屏、前卫理念、旋转触摸音乐键、2.6英寸大屏幕、支持重力感应、内置诸多实用功能。
稍显缺憾:音质表现力一般、视频播放效果一般、按键手感偏硬。

联想s700_联想 S700 -参考资料

[1] 太平洋网
本文标题:联想r400笔记本参数-笔记51-徐 参数嗅探 Parameter Sniffing
本文地址: http://www.61k.com/1090417.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1