데이터베이스 개발자 질문과 답변 게시판
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는 맞게 수정해서 쓰세요.