Je n'ai jamais eu de problème avec les performances sur plusieurs colonnes nulles, même sur des bases de données d'une centaine de gigs. J'imagine que vous pouvez vous retrouver avec des problèmes si vous exécutez des index sur ces champs, puis utilisez null dans la requête, mais je n'ai pas vu cela comme un problème personnellement. Là encore, je n'ai pas créé de tables de base de données où chaque champ sauf 3 était nullable.
D'un autre côté, je vois un problème d'architecture lorsque la plupart des données sont nulles. la raison générale est soit a) une base de données mal normalisée, soit b) une tentative de permettre aux utilisateurs d'organiser les données dans la table de fin plutôt que de créer des tables séparées pour "construire" les données avant de s'engager dans la base de données.
A vous de déterminer la meilleure architecture de votre base de données.