overstating field size in database design I have some fields for my tables that are strings and at the moment, most of the field size have pretty high character limits. For instance, 100 char for the street name. Is there a penalty for using large field size? If I change the limit to 30 char for this field for instance, will there be a performance gain or an efficiency with size? There would about 50 fields that could be candidates for shrinkage.

Thanks for your suggestions.
If you're talking about varchar and nvarchar then no, there is no penalty for allowing a higher field length.



Some caveats to bear in mind, though:


There is a 2 byte overhead per row for variable length fields (per field).  If you have a very short field it may make more sense to use a CHAR.  Varchar(2) for instance actually uses between 2-4 bytes per row, while CHAR(2) always uses 2.
Very long fields cannot be indexed.  The maximum length for all fields in an index key set is 900 bytes.
If you allow more data than you expect, you will eventually get unexpected results.  If you allow 100 characters for a street name, at some point other data is likely to get into that field without you being aware of it (for instance the entire address).  If you had it appropriately sized, you would likely get an error on insert instead.
Allowing very wide rows could lead to page splits and fragmentation.  If you have a row longer than 8k it will need to be split onto multiple data pages.  A lot of these can really hurt performance.  Narrower in general is more efficient.