Oct 23, 2023 07:36 AM - edited Oct 23, 2023 07:38 AM
Hello
We have 50,000 max record limit on our plan.
On our settings page, it says we're up to 35,500+ records thus far.
However, when I manually look at all our master tables of data, it only ads up to 28,000
So I'm wondering where is that 7,500 record discrepancy is coming from?
If I have ONE record in my master table that shows up in 10 other views, does that single record actually count as 11 records?? (in the master table + the 10 other views)
I always assumed that views simply pull select filtered items from the master record set and didn't count toward the base record max, since they are just regurgitating data that already exists, and not adding more data rows. Is that incorrect thinking?
Thanks.
Solved! Go to Solution.
Oct 24, 2023 05:18 PM
You should put it here, after extension added::
Start from scratch, remove existing few lines and put there
Feb 02, 2024 02:31 PM - edited Feb 02, 2024 02:42 PM
For those, who search and find this question and script. Usually I don't like to use for and declare empty arrays, I'm using map instead. But linter says that await can't be used inside arrow-function. Now I know the 'correct' way to do it.
let tabLen=tab=>tab.selectRecordsAsync().then(q=>[tab.name,q.records.length])
let sizes=await Promise.all(base.tables.map(tabLen))
let total=['TOTAL',sizes.reduce((a,b)=>a+b[1],0)]
output.table(Object.fromEntries([['Table Name','# of records'],...sizes,total]))
Oct 23, 2023 07:48 AM
No, different views don't count towards the limit.
Have you recently deleted 7,500 records? If those 7,500 records are sitting in the base trash, those would count towards your limit.
Oct 23, 2023 07:54 AM
Thanks for your response. Just checked the trash and it's empty. **shrug**
Any other ideas?
Oct 23, 2023 07:57 AM
Hmmmm... my only other idea would be to click through each one of your tables, and check to see if there is a "filter" applied to any of your tables.
The record count in the lower left of the screen only shows the count of the current records that you're looking at (which might be filtered). The record count doesn't show you the "total records in the entire table".
Oct 23, 2023 07:57 AM
ah ha. I'll try that!
Oct 23, 2023 07:42 PM - edited Oct 23, 2023 07:47 PM
Hi,
you can use for quick check
let x=[]
for(let tab of base.tables) x.push(await tab.selectRecordsAsync({fields:[]}).
then(q=>[tab.name,q.records.length]));
x.push(['TOTAL',x.map(e=>e[1]).reduce((a,b)=>a+b)])
output.table(Object.fromEntries(x))
Oct 24, 2023 05:30 AM
Oh! I can try that as well. Where would I put this nifty bit of code?
Oct 24, 2023 05:18 PM
You should put it here, after extension added::
Start from scratch, remove existing few lines and put there
Feb 02, 2024 01:22 PM
Thank you so much! This script worked wonderfully to help me see where all the data is hiding!
Feb 02, 2024 02:31 PM - edited Feb 02, 2024 02:42 PM
For those, who search and find this question and script. Usually I don't like to use for and declare empty arrays, I'm using map instead. But linter says that await can't be used inside arrow-function. Now I know the 'correct' way to do it.
let tabLen=tab=>tab.selectRecordsAsync().then(q=>[tab.name,q.records.length])
let sizes=await Promise.all(base.tables.map(tabLen))
let total=['TOTAL',sizes.reduce((a,b)=>a+b[1],0)]
output.table(Object.fromEntries([['Table Name','# of records'],...sizes,total]))