Performance is not a consideration regarding NULL. The issue with NULL is that it needs to be recognized by your code as a possible value. Your errors are because your code is not anticipating that NULL may be there and fixing it if it is. The problem arose when SQL Server was introduced because it is throwing NULL at your code. If you allow NULL in your data then it will be even more critical that your code anticipate the possibility of NULL being the value. So until you code for NULL being there NULL will give you trouble.