What I’m trying to do
I use my Obsidian vault for work and I like to create “dashboards” for each project I’m working. In that file, I use dataview queries to pull together tasks and other files where the project is tagged. I’m starting to notice that my file loads very slowly and I believe it’s because I have too many separate dataview queries and they are probably not written as efficiently as they can be. I have 1-2 queries inside callouts on the page to make it easier to navigate.
It all looks beautiful and clean, but the page takes 1-2 seconds to load and I don’t want to bog down my vault if I can do it better.
Things I have tried
I have tried using a single dataview query for things like Decisions/Risks, but I am unable to use GROUP BY on task status and maintain the table view, so I broke them into two separate queries.
Example
> [!todo]+ Open Tasks
> ✅ **Open Tasks**
> ```dataview
> TASK
> WHERE !completed AND contains(tags,this.file.etags[0])
> ```
> - [>] **Open Tasks - Not Owned by Me**
> ```dataview
> TABLE without ID
> task.text as "Task",
> file.link as "File Name",
> dateformat(file.cday,"MM-dd-yyyy") as "Logged On",
> dateformat(task.due,"MM-dd-yyyy") as "Target Date"
> FLATTEN file.tasks as task
> WHERE contains(">", task.status)
> WHERE file.folder != this.file.folder AND contains(file.tags, this.file.etags[0])
> ```
> [!summary]- Meeting Log
> ```dataview
> TABLE
> file.cday as Created,
> file.mtime as "Last Modified",
> type as Type
> WHERE file.folder != this.file.folder AND contains(file.tags, this.file.etags[0])
> SORT file.mtime DESC
> ```
> [!attention]- Decisions & Risks
> - [n] **Decisions**
> ```dataview
> TABLE without ID
> task.text as "Log Item",
> file.link as "File Name",
> created as "Logged On"
> FLATTEN file.tasks as task
> WHERE contains("n", task.status)
> WHERE file.folder != this.file.folder AND contains(file.tags, this.file.etags[0])
> ```
> - [!] **Risks**
> ```dataview
> TABLE without ID
> task.text as "Log Item",
> file.link as "File Name",
> created as "Logged On"
> FLATTEN file.tasks as task
> WHERE contains("!", task.status)
> WHERE file.folder != this.file.folder AND contains(file.tags, this.file.etags[0])
> ```