Như với tất cả mọi thứ, nó phụ thuộc.
Nếu bạn đang sử dụng OCI, tôi cho rằng bạn đang phát triển ứng dụng khách / máy chủ. Tôi thường muốn cơ sở dữ liệu trong tình huống đó hỗ trợ các kết nối máy chủ được chia sẻ và tôi muốn yêu cầu kết nối máy chủ dùng chung khi ứng dụng được kết nối với cơ sở dữ liệu. Điều đó cải thiện hiệu suất của ứng dụng bằng cách giới hạn số lượng công việc mà cơ sở dữ liệu phải làm để tạo một phiên mới. Điều đó có tác dụng phụ là để lại nhiều tài nguyên có sẵn trên máy chủ cho những người khác. Sử dụng các kết nối máy chủ được chia sẻ sẽ liên quan đến đường dẫn mã dài hơn khi cơ sở dữ liệu thực hiện các truy vấn tiếp theo do truy vấn phải được gửi đến quy trình máy chủ dùng chung nhưng điều đó thường không phải là vấn đề lớn nếu số lượng quy trình máy chủ được chia sẻ là hợp lý.
Việc mở một số phiên cũng có thể là một vấn đề nếu DBA không sử dụng quản lý PGA tự động. Nếu bạn đang sử dụng quản lý PGA thủ công, PGA được định cấu hình trên cơ sở mỗi phiên để mỗi phiên có thể phân bổ riêng SORT_AREA_SIZE
cho các loại trong số các thành phần PGA khác. Nếu bạn đã tạo một số lượng lớn phiên trong cơ sở dữ liệu bằng cách sử dụng quản lý PGA thủ công và mỗi phiên cố gắng tối đa hóa việc sử dụng PGA của nó, bạn có thể dễ dàng bỏ đói máy chủ RAM và gây ra vấn đề về hiệu suất cho mọi người. Giả sử bạn đang sử dụng Oracle 10.1 trở lên, tuy nhiên, quản lý PGA tự động có sẵn. Trong trường hợp đó, DBA định cấu hình PGA_AGGREGATE_TARGET
(hoặc bao gồm PGA trong MEMORY_TARGET
11g) và cơ sở dữ liệu đảm bảo rằng PGA tổng hợp trong tất cả các phiên bị hạn chế để cơ sở dữ liệu hết tài nguyên.
Nếu cơ sở dữ liệu hỗ trợ các kết nối máy chủ được chia sẻ, ứng dụng của bạn sẽ có kết nối máy chủ được chia sẻ và cơ sở dữ liệu sử dụng quản lý PGA tự động, hầu hết các DBA sẽ không quan tâm đến việc bạn tạo ra bao nhiêu phiên.
Bây giờ, nếu bạn đang tạo nhiều phiên để bạn có thể thực hiện nhiều công việc song song, điều đó sẽ tạo ra các vấn đề về hiệu suất hơn và hơn số phiên. Thật dễ dàng để định cấu hình cơ sở dữ liệu để hỗ trợ 1000 phiên, ví dụ, việc cấu hình cơ sở dữ liệu để không bị chết trong một đống nếu tất cả 1000 phiên đồng thời đưa ra một truy vấn khó khăn đối với kho dữ liệu. Nếu ứng dụng của bạn đang sử dụng hết tất cả các tài nguyên có sẵn cho cơ sở dữ liệu cho các truy vấn của bạn, DBA có thể muốn xem xét sử dụng Trình quản lý tài nguyên Oracleưu tiên các ứng dụng khác nhau và / hoặc người dùng khác nhau. Ví dụ: DBA có thể định cấu hình Trình quản lý tài nguyên để nếu mức sử dụng CPU đạt 100%, ứng dụng của bạn trong tổng hợp nhận được 50% CPU, một số ứng dụng khác trong tổng hợp nhận được 25% và tất cả các ứng dụng khác nhận 25% còn lại . Nếu không có yêu cầu nào khác đang chờ xử lý, ứng dụng của bạn sẽ được sử dụng miễn phí tất cả 100% CPU.
Nếu bạn đang chạy song song mọi thứ, thì cũng có thể hữu ích khi điều tra khả năng chạy song song của Oracle vì điều đó có thể liên quan đến ít chi phí hơn là viết mã song song của riêng bạn. Ví dụ, tôi hy vọng rằng việc viết một ứng dụng khách sẽ gửi các câu lệnh sử dụng truy vấn song song của Oracle để thực thi thay vì mở nhiều phiên và thực hiện từng câu lệnh từ một luồng riêng biệt trong ứng dụng của bạn Oracle đã không sử dụng truy vấn song song để thực hiện bất kỳ câu lệnh nào. Nếu bạn sử dụng truy vấn song song, cơ sở dữ liệu cũng có thể điều chỉnh số lượng nô lệ song song được sinh ra để khi cơ sở dữ liệu đặc biệt bận rộn, các nô lệ song song được khởi động ít hơn và khi cơ sở dữ liệu tương đối nhàn rỗi, nhiều nô lệ được khởi động.