Solved

Find SQL average row size

Posted on 2008-06-18
5
3,572 Views
Last Modified: 2008-08-13
Hi Experts,
SQL 2000.

How do we find out Average bytes  in each row. in   In other words i am looking for average row size in a table.  

Thanks
-R
0
Comment
Question by:Rainbow002
  • 3
5 Comments
 
LVL 2

Accepted Solution

by:
vasureddym earned 75 total points
ID: 21818610
one straight forward method is....
 

select AVG(total_len) from (
	select len(col1)+ len(col2) + len(col3)...... as total_len
	from yourtable
) as a

Open in new window

0
 
LVL 142

Assisted Solution

by:Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3] earned 75 total points
ID: 21819240
that formula will give a quite good aprox, however it does not accomodate the fact that numerical data date data types are not stored in characters, but with the bit representation of the numerical value. len(1000000) returns 7, but it its a normal int data type, it will still only require 4 bytes ...
0
 
LVL 2

Expert Comment

by:vasureddym
ID: 21820190
Correction 1) angel is correct, this wont work for numeric data type columns

Correction 2) need to add ISNULL(len(col1), 0) for all the columns. If a column is NULL, the whole sum becomes null to ISNULL will save from such situation. Be careful with NULL in SQL Server.
0
 
LVL 2

Expert Comment

by:vasureddym
ID: 21820227
just addition to Correction 1 above:
use datalength () function instead of len() finction. see the code
SELECT AVG(total_len) FROM (
        SELECT	ISNULL(DATALENGTH(col1), 0)+ 
		ISNULL(DATALENGTH(col2), 0) + 
		ISNULL(DATALENGTH(col3), 0)...... AS total_len
        FROM yourtable
) AS a

Open in new window

0
 
LVL 69

Assisted Solution

by:Scott Pletcher
Scott Pletcher earned 50 total points
ID: 21824000
If you want the total row length, not just the data length, be sure to add:

1) An extra two bytes for each variable length column.

2) An extra byte for every 8 columns, rounded up (so 7 cols = 1 byte, 9 cols = 2 bytes).

3) An extra ~10 bytes per row of general SQL overhead (row ptrs, etc.).
0

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Slowly Changing Dimension Transformation component in data task flow is very useful for us to manage and control how data changes in SSIS.
The Delta outage: 650 cancelled flights, more than 1200 delayed flights, thousands of frustrated customers, tens of millions of dollars in damages – plus untold reputational damage to one of the world’s most trusted airlines. All due to a catastroph…
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.
Viewers will learn how to use the UPDATE and DELETE statements to change or remove existing data from their tables. Make a table: Update a specific column given a specific row using the UPDATE statement: Remove a set of values using the DELETE s…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question