Application
performance
Faster apps.
Better use of data.
Faster apps.
Better use of data.
Application performance means completing tasks quickly while using data efficiently.
| ID | Student | Score |
|---|---|---|
| ST-001 | Ana Reyes | 91 |
| ST-002 | Marco Santos | 88 |
| ST-003 | Bea Cruz | 94 |
| ID | Student | Score |
|---|---|---|
| ST-001 | Ana Reyes | 91 |
| ST-002 | Marco Santos | 88 |
| ST-003 | Bea Cruz | 94 |
Example: a teacher opens the same class list with less waiting.
Same records · illustrative timings · automatic loop
A data request is an application asking the database for information.
Ana Reyes requests her score: 91.
Try a familiar task: find a student and change a score.
| ID | Student | Score |
|---|---|---|
| ST-001 | Ana Reyes | 91 |
| ST-002 | Marco Santos | 88 |
| ST-003 | Bea Cruz | 94 |
| ST-004 | Luis Garcia | 86 |
| ST-005 | Mia Ramos | 90 |
Sample application · saving is simulated · changes reset on reload
Grouping requests means getting related data in fewer trips.
Keep each group manageable.
Ana, Marco, Bea… the same 30 student records.
Example: request the class details together instead of asking once for every student.
Filtering means selecting the records that match a need.
The teacher only needs one class.
Less data to send and process.
Same required class list · illustrative school records
A join connects matching records from different tables.
| Student ID | Student |
|---|---|
| ST-001 | Ana Reyes |
| ST-002 | Marco Santos |
| Student ID | Course |
|---|---|
| ST-001 | Course A |
| ST-002 | Course A |
| Student | Course |
|---|---|
| Ana Reyes | Course A |
| Marco Santos | Course A |
The database combines the related information.
Good matching rules help avoid unnecessary work and incorrect results.
Pagination means loading records in small groups.
The next group loads when the user asks for it.
| ID | Student | Score |
|---|---|---|
| ST-001 | Ana Reyes | 91 |
| ST-002 | Marco Santos | 88 |
| ST-003 | Bea Cruz | 94 |
| ST-004 | Luis Garcia | 86 |
| ST-005 | Mia Ramos | 90 |
Example: show five students first instead of loading the whole school.
Caching keeps a temporary copy of frequently used data.
The copy matches the database.
Read the course catalog from the database.
Example: reuse the course list, but refresh the copy when a classroom changes.
The optimizer is the part of the database that chooses how to get the data.
Like choosing a route before starting a trip.
Work includes processing data and reading it from memory or storage.
Database statistics are summaries that help predict how much data a request needs.
An index may help find this small group.
Reading the whole table may cost less.
The DBA keeps these summaries up to date as the data changes.
Like checking how many students are in a class before choosing a classroom · sample counts
An index is a lookup guide that helps locate matching records.
Like checking names throughout a class record.
Like using a book’s index to find a topic.
Find ST-017.
Indexes can speed up searches, but take space and need updates when data changes.
Query tuning means improving a data request so it needs less work.
The database can filter the class before sending the results.
SELECT student_name
FROM students
WHERE section = 'BSIT 2A';In plain English: get the names in this class.
The goal is less unnecessary work and the same correct result.
SQL is the language an application uses to ask a relational database for data.
An execution plan describes how the database will carry out a request.
Like checking each step of a delivery to find the delay.
A plan helps explain the work. Measurements show how long it actually takes.
A transaction is a group of database changes that succeeds or fails together.
The teacher changes Ana’s score from 91 to 95.
A lock temporarily protects a record from conflicting changes.
Finish transactions promptly · if the save fails, cancel its changes
Connection pooling means reusing a limited set of database connections.
A few students open their records.
Like shared service counters: use one, finish, then let the next request use it.
A bottleneck is the part of the process that limits overall performance.
| Task | Requests | Average time | Total time |
|---|---|---|---|
| Class list | 1,000 | 20 ms | 20,000 ms |
| Term report | 5 | 800 ms | 4,000 ms |
A small delay adds up when the same task happens many times.
Example: many class-list requests create more total work than a few reports · sample data
They find the cause of a delay and improve how the application uses data.
Example: improve the class list together, then test it again.
Performance testing checks speed and correctness under a known workload.
Response time: how long one task takes. Throughput: tasks completed per second.
Compare the same data and user load. Keep the results correct. · Sample timings
Enrollment day: the class list is slow and many students are waiting.
10,000 records loaded · only 30 needed
Find the delay. Load only the class, reduce repeat requests, then test again.
Further reading for the ideas in this presentation.
How the database carries out a request.
Data summaries that guide decisions.
Finding records and understanding tradeoffs.
Concurrent updates and lock waits.
Tracking frequent and slow requests.
Database trips and application access patterns.
MSIT 206 · Unit 5 · September 14–27, 2026
data, plans, and timings · browser demos simulate database behavior.