SdFat is the smallest SDHC Arduino SD library, the official SD.h library is just a wrapper for a 2009 version of SdFat.
You can reduce the size of SdFat by about 2,000 bytes by editing SdFatConfig.h.
For the BackwardCompatibility example in:
https://github.com/greiman/SdFat-beta
The unmodified size for Uno is:
Sketch uses 11150 bytes (34%) of program storage space. Maximum is 32256 bytes.
Global variables use 997 bytes (48%) of dynamic memory, leaving 1051 bytes for local variables. Maximum is 2048 bytes.
With these settings in SdFatConfig.h
#define USE_FAT_FILE_FLAG_CONTIGUOUS 0
#define ENABLE_DEDICATED_SPI 0
#define USE_LONG_FILE_NAMES 0
#define SDFAT_FILE_TYPE 1
The size is:
Sketch uses 8966 bytes (27%) of program storage space. Maximum is 32256 bytes.
Global variables use 991 bytes (48%) of dynamic memory, leaving 1057 bytes for local variables. Maximum is 2048 bytes.