|
SELECT TOP 50000 * INTO B
FROM A
ORDER BY NEWID();
위에거를 사용하시면 될 겁니다.
다만, ORDER BY NEWID() 이 부분이 부하가 좀 큽니다.
이 경우라면 A라는 테이블의 모든 레코드에 각각 랜덤한 수를 부여한 후 그 랜덤하게 발생한 숫자를 기준으로 정렬한 뒤 앞에서 50000개를 끊어 오기 때문에, 서버 부하가 좀 클겁니다.
그래도, 클라이언트 단에서 5만번 레코드를 읽어오고 쓰고 하는 것보다는 낫지 않을까 싶습니다만, 효율성은 직접 확인해 보심이 좋을 듯 합니다.
하안인 님이 쓰신 글 :
: A라는 테이블에서 샘플링을 50000개만 추출하여
: B라는 테이블로 만들고 싶습니다.
:
: 전에는
: A테이블을 열고 Random함수를 사용하여 추출된 레코드로 가서
: B테이블에 업데이트 하는것을 5만번하게끔 루핑을 돌렸는데
: 이것을 SQL문으로 구성하려면 어떻게 해야 하나요.
:
: 테이블간의 복사는 insert into table1 select * from table2 같은것으로
: 빨리 복사할수 있는데 위와 같은 것은 어떻게 해야 하는지요.
:
: 물론 중복되는 행은 발생하면 안되구요.
|