The typical convention is that *.sv files are placed on the compilers command line, whereas *.svh files are read by `include directives from other files
The only files that should be read by include are macro
defines and design units that are split into multiple files for collaborative source control. For example, each class in a package is typically put into a separate file. You may want to read my post about `include versus import: SystemVerilog Coding Guidelines: Package import versus `include - Verification Horizons