[dba-SQLServer] Fwd: SQL Server Primary Key

Stuart McLachlan stuart at lexacorp.com.pg
Wed Sep 3 16:49:04 CDT 2014


I wouldn't create the bigint as a representation of the date/time, it still has the same potential 
for conflicts as the actual datetime.  Just autoincrement it.

On 3 Sep 2014 at 8:02, Francisco Tapia wrote:

> Susan,
>   I recommend the autonumber int as a pkid, if he estimates that he
>   can end
> up with over 4Billion entries, he should then consider a BIG int, so
> if that's the case his choice column (datetime) for a pkid is unique
> enough, the compromise would be for him to convert his date to
> yymmddhhmmssnnnnnnn as he stated, it would give him the benefit of a
> faster bigint vs datetime.
> 
> 
> 
> -Francisco <http://twitter.com/seecoolguy>
> 
> 
> 
> 
> On Wed, Sep 3, 2014 at 7:26 AM, Rocky Smolin <rockysmolin at bchacc.com>
> wrote:
> 
> > "Each phone record can be
> > > uniquely identified by the DateTime2(7) start time of the call
> > > because each record is guaranteed to be created in a different 100
> > > nano second window."
> >
> > That's probably true.  Probably isn't good enough for a primary key.
> >  Use Autonumber.
> >
> > IMHO.
> >
> > Rocky
> >
> >
> > -----Original Message-----
> > From: dba-sqlserver-bounces at databaseadvisors.com
> > [mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of
> > Susan Harkins Sent: Wednesday, September 03, 2014 7:02 AM To:
> > Discussion concerning MS SQL Server Subject: [dba-SQLServer] Fwd:
> > SQL Server Primary Key
> >
> > This is from a reader -- seriously over my head. Anyone want to
> > offer some advice?
> >
> > Susan H.
> >
> >
> > On Wed, Sep 3, 2014 at 4:02 AM, Phillip Smith <phillip at creamcow.com>
> > wrote:
> >
> > > Hi Susan,
> > > Just reading your post regarding using the right Primary Key. I'm
> > > building a rehouse to store telephone data. Each phone record can
> > > be uniquely identified by the DateTime2(7) start time of the call
> > > because each record is guaranteed to be created in a different 100
> > > nano second window. There are 100 million records. The main way to
> > > view data is
> > chronological order.
> > > I'm trying to decide whether to use the CallStart datetime2(7)
> > > field for the primary key. I can cluster on this key and join to
> > > my bridging tables using this key. Or should I crate a CallId
> > > (Bigint) that encodes the datetim, Maybe in yymmddhhmmssnnnnnnn
> > > format. You have stated on your post that there is an overhead to
> > > using Datetime type as the primary key. Is this true for my
> > > scenario? Best regards
> > >
> > > Phillip
> > >
> > _______________________________________________
> > dba-SQLServer mailing list
> > dba-SQLServer at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
> > http://www.databaseadvisors.com
> >
> >
> > _______________________________________________
> > dba-SQLServer mailing list
> > dba-SQLServer at databaseadvisors.com
> > http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
> > http://www.databaseadvisors.com
> >
> >
> _______________________________________________
> dba-SQLServer mailing list
> dba-SQLServer at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
> http://www.databaseadvisors.com
> 
> 




More information about the dba-SQLServer mailing list