Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

8/26/2014 How to Reduce the Logical Reads, to imporve the Performance of the Query

http://www.sqlservercentral.com/Forums/Topic571160-8-1.aspx 1/5

Log in :: Register :: Not logged in Search Go

Home
Tags
Articles
Editorials
Stairways
Forums
Scripts
Videos
Blogs
QotD
Books
Ask SSC
SQL Jobs
Training
Authors
About us
Contact us
Newsletters
Write for us

Email address:
Stay up to date!
Was this topic useful? Register to stay up to date with the latest news, articles, scripts and forum posts.

Register
Subscribing to our newsletters gets
you:
ALL of our content (thousands of
articles, scripts, and forum postings)
A daily newsletter (example)
A weekly news round up in our
Database Weekly newsletter
(example)
The opportunity to ask and answer
questions in our forums
A daily Question of the Day to test
and help you increase your
knowledge of SQL Server.
Recent Posts Popular Topics Home Search Members Calendar Who's On
Home SQL Server 7,2000 T-SQL How to Reduce the Logical Reads, to imporve...
12 posts, Page 1 of 2 1 2
How to Reduce the Logical Reads, to imporve the Performance of the Query
Rate
Topic
Display
Mode
Topic
Options
Author Message
santoooo Posted Wednesday, September 17, 2008 10:29 AM
SSC Journeyman

Group: General Forum
Members
Last Login: Wednesday,
July 10, 2013 10:13 PM
Points: 83, Visits: 253
Hi,
I heard abt the Logical/ Physical Reads In Sql Server.
Could any one please explain me
What are Logical Reads?
What are Physical Reads?
and also heared, Less no of Logical Reads improves the Query performance.
please explain me how can we reduce the logical reads..?
Thanks,
Santosh
Post #571160

David Benoit Posted Wednesday, September 17, 2008 10:47 AM

SSCrazy
From BOL
Logical reads - number of pages read from the data cache
Physical reads - number of pages read from disk
To reduce reads you need to look at a couple of things, first being query design,
secondly being indexing. If your query is pulling a large number of records that could be

8/26/2014 How to Reduce the Logical Reads, to imporve the Performance of the Query
http://www.sqlservercentral.com/Forums/Topic571160-8-1.aspx 2/5

Group: General Forum
Members
Last Login: Friday,
August 22, 2014 12:19
PM
Points: 2,107, Visits:
3,582
filtered by getting a smaller set prior to pulling that data then you can always cut down
on reads that way. With improved indexing, specifically with covering indexes, you can
reduce the number of pages that are being read as well.
All of this is just a basic guideline but should be applied to the analysis of all the
queries that are running in your production environment. A query like the following (not
mine but got this from somewhere else so, no credit here) should help in getting those
queries.
SELECT TOP 20
SUBSTRING(qt.text, (qs.statement_start_offset/2)+1, ((
CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(qt.text)
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2)+1) AS SQLText
, qs.execution_count
, qs.total_logical_reads
, qs.last_logical_reads
, qs.min_logical_reads
, qs.max_logical_reads
, qs.total_elapsed_time
, qs.last_elapsed_time
, qs.min_elapsed_time
, qs.max_elapsed_time
, qs.last_execution_time
, qp.query_plan
FROM
sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
WHERE
qt.encrypted=0
ORDER BY
qs.last_logical_reads DESC
David
@SQLTentmaker
SQL Tentmaker
He is no fool who gives what he cannot keep to gain that which he cannot lose - Jim
Elliot
Post #571183

santoooo Posted Wednesday, September 17, 2008 10:16 PM
SSC Journeyman

Group: General Forum
Members
Last Login: Wednesday,
July 10, 2013 10:13 PM
Points: 83, Visits: 253
Hi,
Thank you for your valuable information.
So, to reduce the Logical Reads we need proper indexing for the tables.
Regards,
Santosh
Post #571459

Sergiy Posted Wednesday, September 17, 2008 10:53 PM
SSCarpal Tunnel

Group: General Forum
Members
Last Login: Monday,
August 18, 2014 9:16
PM
Points: 4,576, Visits:
8,347
santoooo (9/17/2008)
So, to reduce the Logical Reads we need proper indexing for the tables.
Regards,
Santosh
No, you need proper database.
Proper schema, proper data normalisation, proper data types, proper keys, proper
indexes, etc.
8/26/2014 How to Reduce the Logical Reads, to imporve the Performance of the Query
http://www.sqlservercentral.com/Forums/Topic571160-8-1.aspx 3/5
You need to open a good book about relational DB design and follw its
recommendations.
Post #571473

papapumpy Posted Tuesday, January 5, 2010 3:04 PM
Forum Newbie

Group: General Forum
Members
Last Login: Tuesday,
January 5, 2010 3:20 PM
Points: 2, Visits: 1
Yes, indexing helps but reducing logical reads does not help performance. maybe a tiny
bit
read some article about buffer hit ratio and data cache. physical reads is the one takes
significantly longer time. i actually wrote my final term paper about that when i was in
CS in my college long time ago.
Dr. Inner Join
Post #842453

GilaMonster Posted Tuesday, January 5, 2010 3:11 PM

SSC-Forever

Group: General Forum
Members
Last Login: Today @
2:51 PM
Points: 42,784, Visits:
35,895
You did notice that this thread is over a year old?
Gail Shaw
Microsoft Certified Master: SQL Server 2008, MVP
SQL In The Wild: Discussions on DB performance with occasional diversions into
recoverability
We walk in the dark places no others will enter
We stand on the bridge and no one may pass
Post #842458

papapumpy Posted Tuesday, January 5, 2010 3:21 PM
Forum Newbie

Group: General Forum
Members
Last Login: Tuesday,
January 5, 2010 3:20 PM
Points: 2, Visits: 1
LOL!
Post #842463

John Rowan Posted Tuesday, January 5, 2010 3:37 PM
Hall of Fame

Group: General Forum
Members
Last Login: Tuesday,
August 19, 2014 10:01
AM
Points: 3,844, Visits:
3,841
papapumpy (1/5/2010)
Yes, indexing helps but reducing logical reads does not help performance. maybe a
tiny bit
read some article about buffer hit ratio and data cache. physical reads is the one
takes significantly longer time. i actually wrote my final term paper about that when i
was in CS in my college long time ago.
Dr. Inner Join
8/26/2014 How to Reduce the Logical Reads, to imporve the Performance of the Query
http://www.sqlservercentral.com/Forums/Topic571160-8-1.aspx 4/5
The thread may be over a year old, but I have to add a correction as to not confuse new
readers. Reducing logical reads [b]does[/do] improve query performance! In fact, logical
reads is one of the best metric to look at when optimizing a query. Logical reads
represents the data that must be read from cache in order to process a query. The less
amount of data needed to process a query, the better it performs.
Using SET STATISTICS IO ON when optimizing queries can help you quickly, by
looking at the logical reads counter, determine where to focus your tuning efforts.
Seeing the logical reads by object can quickly point you to poorly performing sections
of your query.
So to recap, I think the statement that "reducing logical reads does not help
performance. maybe a tiny bit" is not true.
John Rowan
======================================================
======================================================
Forum Etiquette: How to post data/code on a forum to get the best help - by
Jeff Moden
Post #842470

santoooo Posted Wednesday, January 6, 2010 6:21 AM
SSC Journeyman

Group: General Forum
Members
Last Login: Wednesday,
July 10, 2013 10:13 PM
Points: 83, Visits: 253
Dear All,
Thank you very much for your information.
Post #842715

Dinesh Babu
Verma
Posted Wednesday, February 8, 2012 2:15 AM
Forum Newbie

Group: General Forum
Members
Last Login: Tuesday,
April 2, 2013 1:37 AM
Points: 6, Visits: 83
Summary Info:
Logical Reads : Reading Data pages from Cache
Physical Reads : Reading Data pages from Hard Disk
Buffer Cach Hit Ratio logical reads physical reads)/logical read * 100%
Details Info:
Logical Reads:
Logical read indicates total number of data pages needed to be accessed from data
cache to process query. It is very possible that logical read will access same data
pages many times, so count of logical read value may be higher than actual number of
pages in a table. Usually the best way to reduce logical read is to apply correct index or
to rewrite the query.
Physical Reads
Physical read indicates total number of data pages that are read from disk. In case no
data in data cache, the physical read will be equal to number of logical read. And
usually it happens for first query request. And for subsequent same query request the
number will be substantially decreased because the data pages have been in data
cache.
Buffer Cash Hit Ratio
Buffer hit ratio will be calculated based on these two kinds of read as the following
formula: (logical reads physical reads)/logical read * 100%. The high buffer hit ratio (if
possible to near 100%) indicates good database performance on SQL Server level. So
8/26/2014 How to Reduce the Logical Reads, to imporve the Performance of the Query
http://www.sqlservercentral.com/Forums/Topic571160-8-1.aspx 5/5
use information from physical read and buffer hit ratio to measure performance in server
level and logical read to measure individual query level
Thanks,
Dinesh Babu Verma
Post #1248790

Prev Topic | Next Topic

12 posts, Page 1 of 2 1 2
Permissions
Copyright 2002-2014 Simple Talk Publishing. All Rights Reserved. Privacy Policy. Terms of Use. Report Abuse.

You might also like