6

의견을 요구하는 것이 아니라 문서에 대해 더 많이 요구합니다.저장 프로 시저 또는 코드

우리는 많은 데이터 파일 (XML, CSV, Plantext 등 ...)을 처리해야하며 데이터를 처리해야합니다.

리드 데이터베이스 담당자가 저장 프로 시저를 사용하여 작업을 수행하도록 제안했습니다. 기본적으로 파일이 직렬화되고 clob 또는 XML 열에 저장되는 스테이징 테이블이 있습니다. 그런 다음 거기에서 그는 저장 프로 시저를 사용하여 파일을 처리 할 것을 제안했습니다.

저는 DB 배경을 가진 응용 프로그램 개발자이고, 응용 프로그램 개발에 더 많은 도움이 될 것입니다.하지만 DB에서이 논리를 사용하는 것은 좋지 않은 것 같아요. 증명하거나 부인할 문서를 찾을 수 없습니다. 내가 짐을 짐을 끌기 위해 기차 트랙에 차를 두는 것.

제 질문은 다음과 같습니다. clob, dom traversal, recursion에서 정규 표현식 검색, 검색 및 바꾸기에 대해 DB (Oracle, DB2, MySQL, SqlServer)가 얼마나 잘 작동합니까? 같은 문제에 대한 Java, PHP 또는 C#과 같은 프로그래밍 언어와 비교합니다.

편집

그래서 내가 무엇을 찾고 특정 프로그래밍 언어의 비교/런타임 분석에 대한 문서 문자열 검색을 위해 특히, DBMS 비교 및 ​​교체, 정규 표현식 검색 및 교체입니다. XML Dom traversal. 재귀 메서드 호출시 메모리 사용. 특히 GB 당 10 - 100GB의 데이터가있을 때 얼마나 잘 확장되는지 확인하십시오.

+1

SP : s는 선택 및 집계에 적합합니다. 다른 처리 (문자열, 구문 분석, 수학 등)가 포함되면 쉽게 유지할 수없는 혼란이됩니다. 성능이 실제로 문제입니까? – adrianm

+0

SP를 사용하는 경로를 따라 간다면 시스템을 유지 관리하지 않기 때문에 유지 관리가 내 관심사가 아닙니다. 하지만 나는 어리석은 일이있을 때 유휴 상태가되고 싶지 않습니다. 따라서 저에게 유효한 인수는 유지 보수 변수가 제 방정식에서 벗어 났기 때문에 더 효율적이고 효율적으로 할 수 있다는 것입니다. – Churk

+1

"데이터 마이닝"은 매우 과부하 된 용어입니다. 컴퓨팅 평균에서 $ O (n^3) $ 또는 더 나쁜 런타임의 복잡한 통계 방법에 이르는 모든 것을 의미 할 수 있습니다. 더 정확하게 말하십시오. 왜냐하면 분명히 저장 프로 시저를 사용하여 쉽게 할 수 있기 때문입니다. 다른 사람들은 이런 식으로하는 고통이 될 것입니다! –

답변

1

비즈니스 논리를 저장소 계층에 던지려는 것 같습니다. 설명하는 것과 같은 조작의 경우 데이터베이스를 사용하지 않아야합니다. 유연성이 없어서 showstoppers에 대한 해결 방법을 찾으려고하거나 기발한 솔루션을 만들려고 할 수도 있습니다.

또한 유지 관리 가능성을 염두에 두십시오. 나중에 얼마나 많은 사람들이 솔루션을 유지 관리 할 수 ​​있습니까?

속도에 대해 말하면 올바른 프로그래밍 언어를 선택하면 여러 스레드에서 데이터를 처리 할 수 ​​있습니다. 결국, 열차 내 자동차에 대한 느낌은 맞습니다.)

+0

나는 그 모든 것을 알고있다. 하지만 내가 필요한 것은 상식이 설명하는 문서입니다. 어떤 문서가 없으면 나의 주장은 내가 믿는 것만 큼 유효하지만 전문가는 아니다. 나는 응용 프로그램 개발자이며, 논리를 저장 영역에 두는 것을 확실히 믿지 않는다고 말합니다. 그래서 나는 지역 사회의 누군가가 내가 생각하는 것을 정당화 할 수있는 어떤 것을 읽을 수도 있기를 바란다. – Churk

+0

답변을 downvote하는 것은 말이되지 않습니다. 당신이 찾고있는 주장은 소프트웨어 개발의 공리입니다. 그것에 관한 많은 문서를 찾을 수 있습니다. 요점에 대한 나쁜 생각은 없습니다. 프로그래밍으로 알고리즘을 병렬화 할 수있는 가능성과 가능성과 같은 논점을 제공 할 수 있습니다. –

+0

편집에 따르면 집회는 DB 레이어 외부에서해야합니다. 특히 "XML DOM traversal"및 "recursive method calls"에서 훨씬 더 유연합니다.이 속성은 저장 영역의 일부가 아닙니다. 당신의 DBA가이 모든 것을 할 것이라면 이것은 개념 증명 일뿐입니다. 그것은 오랜 시간이 걸리고 믿을 수없는 돈이들 것입니다. 저는 저와 다른 대답을 반복 할 수 있습니다 : 기억 계층은 이것을 위해 만들어지지 않았고, 그것은 자연스럽게 훨씬 더 나빠질 것입니다. –

1

처리 논리를 데이터 영역 밖으로 끌어내는 것이 좋습니다. 데이터베이스에서 구현을 구현하는 것은 어려울 것입니다.

구현이 모든 언어로 완료되면 라이브러리를 선택하고 성능을 비교할 수있는 자유와 옵션이 제공됩니다. 또한 (Java 용 Spring-Batch)와 같은 프레임 워크를 선택하여 대량의 데이터를 배치 프로세스로 처리 할 수 ​​있습니다.