For a scientific project of mine I am developing (in C#4 and T-SQL) an application potentially meant to handle very big quantities of very simple records performing simple operations with them (a scientific simulation engine, not a linear time-series cruncher). I'd like to use 64-bit integers as primary keys for better capacity.
I am going to integrate using of Entity Framework, POCO collections and arrays processing and T-SQL stored procedures practically.
I am going to store a database on an SQL Server 2008 and access it from multiple application instances simultaneously for distributed processing.
SQL Server and application instances are going to be run on 32-bit Windows XP systems, sometimes on completely 64-bit-unaware hardware.
What penalties am I going to face for using 64-bit integer types as primary keys?