Database 입문자 입니다.
MS SQL 사용 중이구요.
제품에 관련 Data Table을 설계하고자 하는데
제품에 관련된 정보들은 대략 아래와 같습니다.
특정 제품에 제픔에 대한 ID가 있고 해당 제품은 공정 Step이 있는데
그 Step에서 공정 처리 중일때 마다 공정값을 Table에 적재하고자 합니다.
그래서 나중에 Select 하여 각 제품 ID별과 공정 ID별로의 진행된 공정값을 활용하고자 하는데요...
이때 해당 Table에 중복되지 않는 고유한 값을 공정 진행 시간뿐입니다.
(공정값은 유동적 . 고유할 수도 있고 값이 바뀔수도 있음)
Data 적재량은 5천만/일 이 넘을것 같은데
쌓이 Data를 쿼리 할 경우 Key 지정없이는 Data 찾기가 너무 오래 걸립니다.
하기와 같은 구조인경우 Table 구조와 Key / Index등 설정을 어떻게 하는 것이 좋을까요...ㅜㅜ
고수님들의 의견 부탁드립니다.
제품ID 공정ID 공정 진행 시간 공정값 (값이 변함)
AAA P01 2020-01-01 00:00:00 1,2,3,4,5,6,7,8,9,19,1,1,12,3,,12,3......
AAA P01 2020-01-01 00:00:01 2,3,4,5,5,6,7,8,9,19,1,1,12,3,,12,3......
AAA P01 2020-01-01 00:00:03 2,3,4,5,5,6,7,8,9,19,1,1,12,3,,12,3......
AAA P01 2020-01-01 00:00:04 2,3,4,5,5,6,7,8,9,19,1,1,12,3,,12,3......
AAA P02 2020-01-01 00:00:30 2,3,4,5,5,6,7,8,9,19,1,1,12,3,,12,3......
AAA P02 2020-01-01 00:00:32 2,3,4,5,5,6,7,8,9,19,1,1,12,3,,12,3......
AAA P02 2020-01-01 00:00:34 2,3,4,5,5,6,7,8,9,19,1,1,12,3,,12,3......
BBB P01 2020-01-01 00:00:30 2,3,4,5,5,6,7,8,9,19,1,1,12,3,,12,3......
Comment 2
-
모가모가
2020.02.19 14:53
의견CREATE TABLE [dbo].[test]([index] [bigint] IDENTITY(1,1) NOT NULL,[ID_1] [varchar](24) NOT NULL,[ID_2] [varchar](24) NOT NULL,[TIME] [datetime] NOT NULL,[VALUE] [nvarchar](255) NOT NULL,CONSTRAINT [PK_index] PRIMARY KEY CLUSTERED([index] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY],CONSTRAINT [time] UNIQUE NONCLUSTERED([TIME] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]) ON [PRIMARY]GOALTER TABLE [dbo].[test] ADD CONSTRAINT [DF_TIME] DEFAULT (dateadd(second,datediff(second,getutcdate(),getdate()),'1970-01-01 00:00:00')) FOR [TIME]GO -
모가모가
2020.02.19 14:54
컬럼의 type는 맞게 수정해서 쓰세요.