Q&A

  • SQL로 생성시킨 Index는 어떻게 사용?
SQL초봅니다...



Create Table....와 Create Index...명령으로...

DataBase에 Table와 Index를 생성 시켜 놓았습니다.



위에서 생성시킨 DB와 Table로 델파이에서 SQL Statement로 동적으로 연결해서

프로그래밍하고 있거든여...그런데...

다른거는 대충 알겠는데, 생성시켜놓은 인덱스를 어떻게 사용하는지를

잘 모르겠어요...



참고로, 저는 InterBase 컴퍼넌트중...Table연결은...IBDataSet을 사용하고 있어여...

아시는 분은 귀찬으시더라두 답변좀 부탁드립니다.





3  COMMENTS
  • Profile
    이경원 2000.08.22 23:26
    김계성 wrote:

    > SQL초봅니다...

    >

    > Create Table....와 Create Index...명령으로...

    > DataBase에 Table와 Index를 생성 시켜 놓았습니다.

    >

    > 위에서 생성시킨 DB와 Table로 델파이에서 SQL Statement로 동적으로 연결해서

    > 프로그래밍하고 있거든여...그런데...

    > 다른거는 대충 알겠는데, 생성시켜놓은 인덱스를 어떻게 사용하는지를

    > 잘 모르겠어요...

    >

    > 참고로, 저는 InterBase 컴퍼넌트중...Table연결은...IBDataSet을 사용하고 있어여...

    > 아시는 분은 귀찬으시더라두 답변좀 부탁드립니다.

    >

    >

    interbase는 잘 모르겠고, 인덱스는 책의 목차와 같은 역할을 하므로, 검색시

    속도를 증가시켜 줍니다.



    하지만 데이타의 양이 많을 경우입니다. 데이타가 200건(정확하지 않음)도 안 된다면 속도가 더 저하됩니다. 또한 인덱스를 정의하면 인덱스 화일을 db가 생성하므로, 데이타 저장시에도 속도를 저하시킵니다.



    table 컴포넌트를 이용한다면 findkey, setrange를 이용하면 반드시 인덱스를 선언해야만 이용 가능합니다.



    도움이 되셨길......''



    즐팅하세요...

  • Profile
    이선경 2000.08.22 17:30
    김계성 wrote:

    > SQL초봅니다...

    >

    > Create Table....와 Create Index...명령으로...

    > DataBase에 Table와 Index를 생성 시켜 놓았습니다.

    >

    > 위에서 생성시킨 DB와 Table로 델파이에서 SQL Statement로 동적으로 연결해서

    > 프로그래밍하고 있거든여...그런데...

    > 다른거는 대충 알겠는데, 생성시켜놓은 인덱스를 어떻게 사용하는지를

    > 잘 모르겠어요...

    >

    > 참고로, 저는 InterBase 컴퍼넌트중...Table연결은...IBDataSet을 사용하고 있어여...

    > 아시는 분은 귀찬으시더라두 답변좀 부탁드립니다.

    >

    > 그런거 신경 안쓰셔도 됩니다... sql에서 알아서 사용합니다...

  • Profile
    김계성 2000.08.25 06:23
    이선경 wrote:

    > 김계성 wrote:

    > > SQL초봅니다...

    > >

    > > Create Table....와 Create Index...명령으로...

    > > DataBase에 Table와 Index를 생성 시켜 놓았습니다.

    > >

    > > 위에서 생성시킨 DB와 Table로 델파이에서 SQL Statement로 동적으로 연결해서

    > > 프로그래밍하고 있거든여...그런데...

    > > 다른거는 대충 알겠는데, 생성시켜놓은 인덱스를 어떻게 사용하는지를

    > > 잘 모르겠어요...

    > >

    > > 참고로, 저는 InterBase 컴퍼넌트중...Table연결은...IBDataSet을 사용하고 있어여...

    > > 아시는 분은 귀찬으시더라두 답변좀 부탁드립니다.

    > >

    > > 그런거 신경 안쓰셔도 됩니다... sql에서 알아서 사용합니다...



    답변 감사드립니다...그치만,



    전에 Paradox를 사용할때는 Index를 생성시키고 나서, TTable컴퍼넌트를 이용해서

    인덱스를 사용하려면, 항시 생성시킨 인덱스를 정의하고 썼거든여...



    Table1.IndexFieldNames := '필드명'; --> 이런식으로여

    Table1.FindKey('...');





    그런데 SQL관련 책자에서 인덱스에대해 설명하는 칼럼에선 항시 동적으로

    인덱스를 생성시키고서, 쿼리하더라구여...



    Create Index 인덱스명 On 테미블(필드명);

    Select * from Table;



    위에서 처럼여...



    그런데 인덱스를 한 테이블당 평균 5개정도 인덱스를 생성시켜 놓았는데,

    정의 없이 쓴다는게 잘 이해가 안되는 군여...



    그렇다면, 답변하신 말씀은 쿼리한 용도에 적절하게 SQL에서 인덱스를 사용한다는

    말씀인거 같은데...그렇다면 무슨 연유로 인덱스 생성시 인덱스명을 지정할까여?

    암튼 초보라서 잘은 모르겠습니다...



    귀찮으시더라두 답변 자세히 부탁 드립니다....